{
  "contractName": "DoublyLinkedList",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "find",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "name": "find",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "find",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "find",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "find",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_data",
          "type": "uint256"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_data",
          "type": "address"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_data",
          "type": "bytes32"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_data",
          "type": "uint256"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_data",
          "type": "bytes32"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_data",
          "type": "address"
        }
      ],
      "name": "append",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "name": "remove_item",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        }
      ],
      "name": "total",
      "outputs": [
        {
          "name": "_total_count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "start_item",
      "outputs": [
        {
          "name": "_start_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        }
      ],
      "name": "end",
      "outputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        }
      ],
      "name": "end_item",
      "outputs": [
        {
          "name": "_end_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item_index",
          "type": "uint256"
        }
      ],
      "name": "valid",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_item",
          "type": "uint256"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_item",
          "type": "bytes32"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_item",
          "type": "address"
        }
      ],
      "name": "valid_item",
      "outputs": [
        {
          "name": "_yes",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "previous",
      "outputs": [
        {
          "name": "_previous_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "address"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "uint256"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_current_item",
          "type": "uint256"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_current_item",
          "type": "address"
        }
      ],
      "name": "previous_item",
      "outputs": [
        {
          "name": "_previous_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_index",
          "type": "uint256"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "name": "_next_index",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Uint storage"
        },
        {
          "name": "_current_item",
          "type": "uint256"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedBytes storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedUint storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "uint256"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Address storage"
        },
        {
          "name": "_current_item",
          "type": "address"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.IndexedAddress storage"
        },
        {
          "name": "_collection_index",
          "type": "bytes32"
        },
        {
          "name": "_current_item",
          "type": "address"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Data storage"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "self",
          "type": "DoublyLinkedList.Bytes storage"
        },
        {
          "name": "_current_item",
          "type": "bytes32"
        }
      ],
      "name": "next_item",
      "outputs": [
        {
          "name": "_next_item",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61363d610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061048e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ad2f1e4146104935780630cf65c5d146104d55780630f7795521461051757806311ef1f681461054b5780631240ff5a1461058d57806312e3853d146105c1578063141f30d1146105f557806315e8f3351461063f578063165a1b3e1461067d57806320482030146106cc57806322fddb161461075a578063255314821461078e5780632788c74d146107ca5780632a144178146108085780632dfabf0d14610852578063303f71461461088e57806334646f45146108cc57806337b306331461091c5780633ae697421461095e5780633b6650fe1461099257806340c6bb18146109d45780634444b47114610a1257806344b132fb14610a6257806345a103cc14610aae57806349c8cd5714610afe5780634caf5c7214610b3c5780634cdd415414610b8857806350d7409014610bd457806352c6bbf414610c2c57806355a0a1bf14610c7f57806356717c7914610cc1578063582f30b414610cfd5780635abec84714610d505780635e0d4aa914610d8457806362bc354714610db857806365a6b14d14610dec578063675a4ef014610e3257806367ea4be214610ec05780636d1d1e5614610f0c5780636e2d580514610f4e578063706853de14610f905780637436b4e814610fda57806377ed072f1461102a57806379355bf4146110685780637a362458146110b45780637ee0a583146111005780638780ec541461115457806387fca8a6146111a05780638c8e985c146112205780638dc8bc2b1461126257806390716d41146112c757806393e65fb7146113315780639500c08e1461137757806395108fc8146113b9578063966277fb146113f75780639682eb12146114585780639f9b1c98146114cb578063a48a7fbb1461150d578063a7b9777c14611559578063a87c1121146115d9578063a9786fe514611636578063b0c29efb14611678578063b0d6b1cc146116e6578063b197bf0b1461174c578063b598c31a14611780578063b894bf93146117f3578063bd25ecbf14611827578063bd3d106f1461185b578063be4517ef14611899578063bed5fa9a146118fa578063bf8a2ac61461193c578063bfbfe9d9146119a1578063c3338488146119ed578063c4e2ba3314611a4d578063c501bf5614611aa1578063c554912614611b0f578063cc71a88d14611b4d578063cd4292a714611b8f578063cf06689d14611bd1578063d2e98bca14611c1b578063d3209ca014611c61578063d372d5f614611ca3578063d61488b714611cf2578063d70fcee414611d4a578063d9970ab314611d88578063dbcdc19d14611dbc578063dc96b2fa14611e06578063de2c312e14611e42578063dfffdce314611e8e578063e29ae7ac14611eeb578063e837332314611f1f578063e8e7fed214611f5d578063ec40b89714611f91578063f1f9d1c414611fcf578063f46574aa14612027578063fa8a047414612087578063facf138e146120cd578063fbec360f1461210f578063fcc7e24714612159575b600080fd5b6104bf60048036038101908080359060200190929190803560001916906020019092919050505061219b565b6040518082815260200191505060405180910390f35b6105016004803603810190808035906020019092919080356000191690602001909291905050506121ca565b6040518082815260200191505060405180910390f35b610535600480360381019080803590602001909291905050506121e1565b6040518082815260200191505060405180910390f35b6105776004803603810190808035906020019092919080356000191690602001909291905050506121f6565b6040518082815260200191505060405180910390f35b6105ab60048036038101908080359060200190929190505050612229565b6040518082815260200191505060405180910390f35b6105df60048036038101908080359060200190929190505050612242565b6040518082815260200191505060405180910390f35b610621600480360381019080803590602001909291908035600019169060200190929190505050612257565b60405180826000191660001916815260200191505060405180910390f35b610667600480360381019080803590602001909291908035906020019092919050505061229f565b6040518082815260200191505060405180910390f35b81801561068957600080fd5b506106b26004803603810190808035906020019092919080359060200190929190505050612308565b604051808215151515815260200191505060405180910390f35b610718600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077860048036038101908080359060200190929190505050612370565b6040518082815260200191505060405180910390f35b6107ac60048036038101908080359060200190929190505050612385565b60405180826000191660001916815260200191505060405180910390f35b6107f2600480360381019080803590602001909291908035906020019092919050505061239a565b6040518082815260200191505060405180910390f35b6108346004803603810190808035906020019092919080356000191690602001909291905050506123b1565b60405180826000191660001916815260200191505060405180910390f35b610870600480360381019080803590602001909291905050506123c8565b60405180826000191660001916815260200191505060405180910390f35b6108b660048036038101908080359060200190929190803590602001909291905050506123ff565b6040518082815260200191505060405180910390f35b61090260048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612468565b604051808215151515815260200191505060405180910390f35b61094860048036038101908080359060200190929190803560001916906020019092919050505061249c565b6040518082815260200191505060405180910390f35b61097c600480360381019080803590602001909291905050506124cb565b6040518082815260200191505060405180910390f35b6109be6004803603810190808035906020019092919080356000191690602001909291905050506124e0565b6040518082815260200191505060405180910390f35b6109fc6004803603810190808035906020019092919080359060200190929190505050612547565b6040518082815260200191505060405180910390f35b610a4860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612565565b604051808215151515815260200191505060405180910390f35b610a9860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612596565b6040518082815260200191505060405180910390f35b610ae4600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506125c7565b604051808215151515815260200191505060405180910390f35b610b2660048036038101908080359060200190929190803590602001909291905050506125f8565b6040518082815260200191505060405180910390f35b610b726004803603810190808035906020019092919080356000191690602001909291908035906020019092919050505061260f565b6040518082815260200191505060405180910390f35b610bbe60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612647565b6040518082815260200191505060405180910390f35b610c1260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061267c565b604051808215151515815260200191505060405180910390f35b818015610c3857600080fd5b50610c656004803603810190808035906020019092919080356000191690602001909291905050506126ac565b604051808215151515815260200191505060405180910390f35b610cab6004803603810190808035906020019092919080356000191690602001909291905050506126c3565b6040518082815260200191505060405180910390f35b610cdf600480360381019080803590602001909291905050506126f2565b60405180826000191660001916815260200191505060405180910390f35b818015610d0957600080fd5b50610d36600480360381019080803590602001909291908035600019169060200190929190505050612707565b604051808215151515815260200191505060405180910390f35b610d6e6004803603810190808035906020019092919050505061271e565b6040518082815260200191505060405180910390f35b610da260048036038101908080359060200190929190505050612733565b6040518082815260200191505060405180910390f35b610dd66004803603810190808035906020019092919050505061274c565b6040518082815260200191505060405180910390f35b610e18600480360381019080803590602001909291908035600019169060200190929190505050612761565b604051808215151515815260200191505060405180910390f35b610e7e600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612778565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ef6600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506127c6565b6040518082815260200191505060405180910390f35b610f386004803603810190808035906020019092919080356000191690602001909291905050506127fa565b6040518082815260200191505060405180910390f35b610f7a600480360381019080803590602001909291908035600019169060200190929190505050612829565b6040518082815260200191505060405180910390f35b610fbc600480360381019080803590602001909291908035600019169060200190929190505050612858565b60405180826000191660001916815260200191505060405180910390f35b61101060048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612887565b604051808215151515815260200191505060405180910390f35b61105260048036038101908080359060200190929190803590602001909291905050506128b8565b6040518082815260200191505060405180910390f35b61109e600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506128d2565b6040518082815260200191505060405180910390f35b6110ea60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612903565b6040518082815260200191505060405180910390f35b61113e60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612934565b6040518082815260200191505060405180910390f35b61118a60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612964565b6040518082815260200191505060405180910390f35b6111de60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61124c6004803603810190808035906020019092919080356000191690602001909291905050506129c9565b6040518082815260200191505060405180910390f35b81801561126e57600080fd5b506112ad60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129f8565b604051808215151515815260200191505060405180910390f35b6112ef6004803603810190808035906020019092919080359060200190929190505050612a28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61135d600480360381019080803590602001909291908035600019169060200190929190505050612a43565b604051808215151515815260200191505060405180910390f35b61139f6004803603810190808035906020019092919080359060200190929190505050612a92565b604051808215151515815260200191505060405180910390f35b6113e16004803603810190808035906020019092919080359060200190929190505050612aac565b6040518082815260200191505060405180910390f35b81801561140357600080fd5b5061143e6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612ac3565b604051808215151515815260200191505060405180910390f35b81801561146457600080fd5b506114b1600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612af4565b604051808215151515815260200191505060405180910390f35b6114f7600480360381019080803590602001909291908035600019169060200190929190505050612b3e565b6040518082815260200191505060405180910390f35b61154360048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612b71565b6040518082815260200191505060405180910390f35b61159760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ba2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b8180156115e557600080fd5b5061161c60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612bd6565b604051808215151515815260200191505060405180910390f35b61165e6004803603810190808035906020019092919080359060200190929190505050612c0a565b604051808215151515815260200191505060405180910390f35b6116a4600480360381019080803590602001909291908035600019169060200190929190505050612c37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611732600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c6a565b604051808215151515815260200191505060405180910390f35b61176a60048036038101908080359060200190929190505050612cb4565b6040518082815260200191505060405180910390f35b81801561178c57600080fd5b506117d9600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc5565b604051808215151515815260200191505060405180910390f35b61181160048036038101908080359060200190929190505050612d0f565b6040518082815260200191505060405180910390f35b61184560048036038101908080359060200190929190505050612d20565b6040518082815260200191505060405180910390f35b6118836004803603810190808035906020019092919080359060200190929190505050612d35565b6040518082815260200191505060405180910390f35b8180156118a557600080fd5b506118e06004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612d4c565b604051808215151515815260200191505060405180910390f35b6119226004803603810190808035906020019092919080359060200190929190505050612d7d565b604051808215151515815260200191505060405180910390f35b81801561194857600080fd5b5061198760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d94565b604051808215151515815260200191505060405180910390f35b6119d760048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612dc4565b6040518082815260200191505060405180910390f35b611a0b60048036038101908080359060200190929190505050612dfc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a876004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612e15565b604051808215151515815260200191505060405180910390f35b611acd600480360381019080803590602001909291908035600019169060200190929190505050612e46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611b376004803603810190808035906020019092919080359060200190929190505050612e79565b6040518082815260200191505060405180910390f35b611b756004803603810190808035906020019092919080359060200190929190505050612e90565b604051808215151515815260200191505060405180910390f35b611bbb600480360381019080803590602001909291908035600019169060200190929190505050612ea7565b6040518082815260200191505060405180910390f35b611bfd600480360381019080803590602001909291908035600019169060200190929190505050612ed6565b60405180826000191660001916815260200191505060405180910390f35b611c436004803603810190808035906020019092919080359060200190929190505050612eed565b60405180826000191660001916815260200191505060405180910390f35b611c8d600480360381019080803590602001909291908035600019169060200190929190505050612f59565b6040518082815260200191505060405180910390f35b818015611caf57600080fd5b50611cd86004803603810190808035906020019092919080359060200190929190505050612f88565b604051808215151515815260200191505060405180910390f35b611d2c6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612fa2565b60405180826000191660001916815260200191505060405180910390f35b611d726004803603810190808035906020019092919080359060200190929190505050612fd3565b6040518082815260200191505060405180910390f35b611da660048036038101908080359060200190929190505050612fea565b6040518082815260200191505060405180910390f35b611de8600480360381019080803590602001909291908035600019169060200190929190505050612fff565b60405180826000191660001916815260200191505060405180910390f35b611e246004803603810190808035906020019092919050505061302e565b60405180826000191660001916815260200191505060405180910390f35b611e7860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050613065565b6040518082815260200191505060405180910390f35b818015611e9a57600080fd5b50611ed160048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050613096565b604051808215151515815260200191505060405180910390f35b611f09600480360381019080803590602001909291905050506130ca565b6040518082815260200191505060405180910390f35b611f4760048036038101908080359060200190929190803590602001909291905050506130d8565b6040518082815260200191505060405180910390f35b611f7b600480360381019080803590602001909291905050506130f3565b6040518082815260200191505060405180910390f35b611fb96004803603810190808035906020019092919080359060200190929190505050613108565b6040518082815260200191505060405180910390f35b6120096004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050613126565b60405180826000191660001916815260200191505060405180910390f35b61204560048036038101908080359060200190929190505050613157565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6120af6004803603810190808035906020019092919080359060200190929190505050613170565b60405180826000191660001916815260200191505060405180910390f35b6120f56004803603810190808035906020019092919080359060200190929190505050613187565b604051808215151515815260200191505060405180910390f35b61213b60048036038101908080359060200190929190803560001916906020019092919050505061319e565b60405180826000191660001916815260200191505060405180910390f35b6121856004803603810190808035906020019092919080356000191690602001909291905050506131e6565b6040518082815260200191505060405180910390f35b60006121c28360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b60006121d983600001836124e0565b905092915050565b60006121ef826000016130ca565b9050919050565b600061221d836000016000846000191660001916815260200190815260200160002061302e565b60019004905092915050565b60006122378260000161302e565b600190049050919050565b6000612250826000016130ca565b9050919050565b600080600061226685856124e0565b915060008214151561228f5761227c85836123ff565b90506122888582612eed565b9250612297565b600060010292505b505092915050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff16151514156122fd5782600501600183038154811015156122e457fe5b9060005260206000209060030201600201549050612302565b600090505b92915050565b600061231a8360000183600102613215565b905092915050565b600061236384600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102612257565b6001900490509392505050565b600061237e82600001612cb4565b9050919050565b6000612393826000016123c8565b9050919050565b60006123a983600001836123ff565b905092915050565b60006123c08360000183612257565b905092915050565b6000806123d483612cb4565b90506000811415156123f1576123ea8382612eed565b91506123f9565b600060010291505b50919050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff161515141561245d57826005016001830381548110151561244457fe5b9060005260206000209060030201600101549050612462565b600090505b92915050565b6000612493846000016000856000191660001916815260200190815260200160002083600102612a43565b90509392505050565b60006124c38360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b60006124d9826000016130ca565b9050919050565b600080836003016000846000191660001916815260200190815260200160002054148015612512575060008360020154145b156125205760009050612541565b82600301600083600019166000191681526020019081526020016000205490505b92915050565b60006125598360000183600102612257565b60019004905092915050565b600061258d846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b60006125be84600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b60006125ef846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b600061260783600001836123ff565b905092915050565b600061263a84600001600085600019166000191681526020019081526020016000208360010261319e565b6001900490509392505050565b600061266f846000016000856000191660001916815260200190815260200160002083612eed565b6001900490509392505050565b60006126a4836000018373ffffffffffffffffffffffffffffffffffffffff16600102612a43565b905092915050565b60006126bb8360000183613215565b905092915050565b60006126ea83600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b60006127008260000161302e565b9050919050565b6000612716836000018361325b565b905092915050565b600061272c82600001612d0f565b9050919050565b6000612741826000016123c8565b600190049050919050565b600061275a82600001612d0f565b9050919050565b60006127708360000183612a43565b905092915050565b60006127b984600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff1660010261319e565b6001900490509392505050565b60006127f18460000160008560001916600019168152602001908152602001600020836001026124e0565b90509392505050565b60006128218360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b600061285083600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b600061287f836000016000846000191660001916815260200190815260200160002061302e565b905092915050565b60006128af846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b60006128ca83600001836001026124e0565b905092915050565b60006128fa8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b600061292b8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b600061295c836000018373ffffffffffffffffffffffffffffffffffffffff166001026124e0565b905092915050565b600061298c8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b60006129bd836000018373ffffffffffffffffffffffffffffffffffffffff16600102612257565b60019004905092915050565b60006129f08360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b6000612a20836000018373ffffffffffffffffffffffffffffffffffffffff16600102613215565b905092915050565b6000612a378360000183612eed565b60019004905092915050565b600080836003016000846000191660001916815260200190815260200160002054905083600401600082815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000612aa48360000183600102612a43565b905092915050565b6000612abb836000018361229f565b905092915050565b6000612aeb84600001600085600019166000191681526020019081526020016000208361325b565b90509392505050565b6000612b3584600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff1660010261325b565b90509392505050565b6000612b6583600001600084600019166000191681526020019081526020016000206123c8565b60019004905092915050565b6000612b9984600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b6000612bca836000018373ffffffffffffffffffffffffffffffffffffffff1660010261319e565b60019004905092915050565b6000612c01846000016000856000191660001916815260200190815260200160002083600102613215565b90509392505050565b600082600401600083815260200190815260200160002060009054906101000a900460ff16905092915050565b6000612c5e836000016000846000191660001916815260200190815260200160002061302e565b60019004905092915050565b6000612cab84600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102612a43565b90509392505050565b600081600101549050809050919050565b6000612d0684600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102613215565b90509392505050565b600081600001549050809050919050565b6000612d2e82600001612cb4565b9050919050565b6000612d4483600001836123ff565b905092915050565b6000612d74846000016000856000191660001916815260200190815260200160002083613215565b90509392505050565b6000612d8c8360000183612c0a565b905092915050565b6000612dbc836000018373ffffffffffffffffffffffffffffffffffffffff1660010261325b565b905092915050565b6000612def846000016000856000191660001916815260200190815260200160002083600102612257565b6001900490509392505050565b6000612e0a8260000161302e565b600190049050919050565b6000612e3d846000016000856000191660001916815260200190815260200160002083612a43565b90509392505050565b6000612e6d83600001600084600019166000191681526020019081526020016000206123c8565b60019004905092915050565b6000612e88836000018361229f565b905092915050565b6000612e9f8360000183612c0a565b905092915050565b6000612ece8360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b6000612ee5836000018361319e565b905092915050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff1615151415612f4b578260050160018303815481101515612f3257fe5b9060005260206000209060030201600001549050612f53565b600060010290505b92915050565b6000612f8083600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b6000612f9a836000018360010261325b565b905092915050565b6000612fca846000016000856000191660001916815260200190815260200160002083612257565b90509392505050565b6000612fe2836000018361229f565b905092915050565b6000612ff882600001612cb4565b9050919050565b600061302683600001600084600019166000191681526020019081526020016000206123c8565b905092915050565b60008061303a83612d0f565b9050600081141515613057576130508382612eed565b915061305f565b600060010291505b50919050565b600061308d84600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b60006130c184600001600085600019166000191681526020019081526020016000208360010261325b565b90509392505050565b600081600201549050919050565b60006130e78360000183612eed565b60019004905092915050565b600061310182600001612d0f565b9050919050565b600061311a836000018360010261319e565b60019004905092915050565b600061314e84600001600085600019166000191681526020019081526020016000208361319e565b90509392505050565b6000613165826000016123c8565b600190049050919050565b600061317f8360000183612eed565b905092915050565b60006131968360000183612c0a565b905092915050565b60008060006131ad85856124e0565b91506000821415156131d6576131c3858361229f565b90506131cf8582612eed565b92506131de565b600060010292505b505092915050565b600061320d8360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b60008061322284846124e0565b905060008114151561324c5761323884826133ff565b151561324357600080fd5b60019150613251565b600091505b8191505092915050565b600080600061326a85856124e0565b14158061327e575060008019168360001916145b1561328c57600091506133f8565b83600501606060405190810160405280856000191681526020018660010154815260200160008152509080600181540180825580915050906001820390600052602060002090600302016000909192909190915060008201518160000190600019169055602082015181600101556040820151816002015550509050600084600101541415613357576000846000015414158061332e57506000846002015414155b1561333857600080fd5b80846001018190558460000181905550600184600201819055506133a3565b8084600501600186600101540381548110151561337057fe5b90600052602060002090600302016002018190555080846001018190555083600201600081548092919060010191905055505b600184600401600083815260200190815260200160002060006101000a81548160ff02191690831515021790555080846003016000856000191660001916815260200190815260200160002081905550600191505b5092915050565b60006134096135ec565b6001151584600401600085815260200190815260200160002060009054906101000a900460ff16151514156135e057836005016001840381548110151561344c57fe5b9060005260206000209060030201606060405190810160405290816000820154600019166000191681526020016001820154815260200160028201548152505090506000816020015114156134ad57806040015184600001819055506134e0565b80604001518460050160018360200151038154811015156134ca57fe5b9060005260206000209060030201600201819055505b6000816040015114156134ff5780602001518460010181905550613532565b806020015184600501600183604001510381548110151561351c57fe5b9060005260206000209060030201600101819055505b836005016001840381548110151561354657fe5b9060005260206000209060030201600080820160009055600182016000905560028201600090555050600084600401600085815260200190815260200160002060006101000a81548160ff02191690831515021790555083600301600082600001516000191660001916815260200190815260200160002060009055836002016000815480929190600190039190505550600191506135e5565b600091505b5092915050565b60606040519081016040528060008019168152602001600081526020016000815250905600a165627a7a723058200f0b289fd96ccd44d9d7d2b302d5a948f1ad92aa9616a5ed91f65d9ef09c44500029",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061048e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ad2f1e4146104935780630cf65c5d146104d55780630f7795521461051757806311ef1f681461054b5780631240ff5a1461058d57806312e3853d146105c1578063141f30d1146105f557806315e8f3351461063f578063165a1b3e1461067d57806320482030146106cc57806322fddb161461075a578063255314821461078e5780632788c74d146107ca5780632a144178146108085780632dfabf0d14610852578063303f71461461088e57806334646f45146108cc57806337b306331461091c5780633ae697421461095e5780633b6650fe1461099257806340c6bb18146109d45780634444b47114610a1257806344b132fb14610a6257806345a103cc14610aae57806349c8cd5714610afe5780634caf5c7214610b3c5780634cdd415414610b8857806350d7409014610bd457806352c6bbf414610c2c57806355a0a1bf14610c7f57806356717c7914610cc1578063582f30b414610cfd5780635abec84714610d505780635e0d4aa914610d8457806362bc354714610db857806365a6b14d14610dec578063675a4ef014610e3257806367ea4be214610ec05780636d1d1e5614610f0c5780636e2d580514610f4e578063706853de14610f905780637436b4e814610fda57806377ed072f1461102a57806379355bf4146110685780637a362458146110b45780637ee0a583146111005780638780ec541461115457806387fca8a6146111a05780638c8e985c146112205780638dc8bc2b1461126257806390716d41146112c757806393e65fb7146113315780639500c08e1461137757806395108fc8146113b9578063966277fb146113f75780639682eb12146114585780639f9b1c98146114cb578063a48a7fbb1461150d578063a7b9777c14611559578063a87c1121146115d9578063a9786fe514611636578063b0c29efb14611678578063b0d6b1cc146116e6578063b197bf0b1461174c578063b598c31a14611780578063b894bf93146117f3578063bd25ecbf14611827578063bd3d106f1461185b578063be4517ef14611899578063bed5fa9a146118fa578063bf8a2ac61461193c578063bfbfe9d9146119a1578063c3338488146119ed578063c4e2ba3314611a4d578063c501bf5614611aa1578063c554912614611b0f578063cc71a88d14611b4d578063cd4292a714611b8f578063cf06689d14611bd1578063d2e98bca14611c1b578063d3209ca014611c61578063d372d5f614611ca3578063d61488b714611cf2578063d70fcee414611d4a578063d9970ab314611d88578063dbcdc19d14611dbc578063dc96b2fa14611e06578063de2c312e14611e42578063dfffdce314611e8e578063e29ae7ac14611eeb578063e837332314611f1f578063e8e7fed214611f5d578063ec40b89714611f91578063f1f9d1c414611fcf578063f46574aa14612027578063fa8a047414612087578063facf138e146120cd578063fbec360f1461210f578063fcc7e24714612159575b600080fd5b6104bf60048036038101908080359060200190929190803560001916906020019092919050505061219b565b6040518082815260200191505060405180910390f35b6105016004803603810190808035906020019092919080356000191690602001909291905050506121ca565b6040518082815260200191505060405180910390f35b610535600480360381019080803590602001909291905050506121e1565b6040518082815260200191505060405180910390f35b6105776004803603810190808035906020019092919080356000191690602001909291905050506121f6565b6040518082815260200191505060405180910390f35b6105ab60048036038101908080359060200190929190505050612229565b6040518082815260200191505060405180910390f35b6105df60048036038101908080359060200190929190505050612242565b6040518082815260200191505060405180910390f35b610621600480360381019080803590602001909291908035600019169060200190929190505050612257565b60405180826000191660001916815260200191505060405180910390f35b610667600480360381019080803590602001909291908035906020019092919050505061229f565b6040518082815260200191505060405180910390f35b81801561068957600080fd5b506106b26004803603810190808035906020019092919080359060200190929190505050612308565b604051808215151515815260200191505060405180910390f35b610718600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077860048036038101908080359060200190929190505050612370565b6040518082815260200191505060405180910390f35b6107ac60048036038101908080359060200190929190505050612385565b60405180826000191660001916815260200191505060405180910390f35b6107f2600480360381019080803590602001909291908035906020019092919050505061239a565b6040518082815260200191505060405180910390f35b6108346004803603810190808035906020019092919080356000191690602001909291905050506123b1565b60405180826000191660001916815260200191505060405180910390f35b610870600480360381019080803590602001909291905050506123c8565b60405180826000191660001916815260200191505060405180910390f35b6108b660048036038101908080359060200190929190803590602001909291905050506123ff565b6040518082815260200191505060405180910390f35b61090260048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612468565b604051808215151515815260200191505060405180910390f35b61094860048036038101908080359060200190929190803560001916906020019092919050505061249c565b6040518082815260200191505060405180910390f35b61097c600480360381019080803590602001909291905050506124cb565b6040518082815260200191505060405180910390f35b6109be6004803603810190808035906020019092919080356000191690602001909291905050506124e0565b6040518082815260200191505060405180910390f35b6109fc6004803603810190808035906020019092919080359060200190929190505050612547565b6040518082815260200191505060405180910390f35b610a4860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612565565b604051808215151515815260200191505060405180910390f35b610a9860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612596565b6040518082815260200191505060405180910390f35b610ae4600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506125c7565b604051808215151515815260200191505060405180910390f35b610b2660048036038101908080359060200190929190803590602001909291905050506125f8565b6040518082815260200191505060405180910390f35b610b726004803603810190808035906020019092919080356000191690602001909291908035906020019092919050505061260f565b6040518082815260200191505060405180910390f35b610bbe60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612647565b6040518082815260200191505060405180910390f35b610c1260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061267c565b604051808215151515815260200191505060405180910390f35b818015610c3857600080fd5b50610c656004803603810190808035906020019092919080356000191690602001909291905050506126ac565b604051808215151515815260200191505060405180910390f35b610cab6004803603810190808035906020019092919080356000191690602001909291905050506126c3565b6040518082815260200191505060405180910390f35b610cdf600480360381019080803590602001909291905050506126f2565b60405180826000191660001916815260200191505060405180910390f35b818015610d0957600080fd5b50610d36600480360381019080803590602001909291908035600019169060200190929190505050612707565b604051808215151515815260200191505060405180910390f35b610d6e6004803603810190808035906020019092919050505061271e565b6040518082815260200191505060405180910390f35b610da260048036038101908080359060200190929190505050612733565b6040518082815260200191505060405180910390f35b610dd66004803603810190808035906020019092919050505061274c565b6040518082815260200191505060405180910390f35b610e18600480360381019080803590602001909291908035600019169060200190929190505050612761565b604051808215151515815260200191505060405180910390f35b610e7e600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612778565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ef6600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506127c6565b6040518082815260200191505060405180910390f35b610f386004803603810190808035906020019092919080356000191690602001909291905050506127fa565b6040518082815260200191505060405180910390f35b610f7a600480360381019080803590602001909291908035600019169060200190929190505050612829565b6040518082815260200191505060405180910390f35b610fbc600480360381019080803590602001909291908035600019169060200190929190505050612858565b60405180826000191660001916815260200191505060405180910390f35b61101060048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612887565b604051808215151515815260200191505060405180910390f35b61105260048036038101908080359060200190929190803590602001909291905050506128b8565b6040518082815260200191505060405180910390f35b61109e600480360381019080803590602001909291908035600019169060200190929190803590602001909291905050506128d2565b6040518082815260200191505060405180910390f35b6110ea60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612903565b6040518082815260200191505060405180910390f35b61113e60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612934565b6040518082815260200191505060405180910390f35b61118a60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612964565b6040518082815260200191505060405180910390f35b6111de60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612995565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61124c6004803603810190808035906020019092919080356000191690602001909291905050506129c9565b6040518082815260200191505060405180910390f35b81801561126e57600080fd5b506112ad60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129f8565b604051808215151515815260200191505060405180910390f35b6112ef6004803603810190808035906020019092919080359060200190929190505050612a28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61135d600480360381019080803590602001909291908035600019169060200190929190505050612a43565b604051808215151515815260200191505060405180910390f35b61139f6004803603810190808035906020019092919080359060200190929190505050612a92565b604051808215151515815260200191505060405180910390f35b6113e16004803603810190808035906020019092919080359060200190929190505050612aac565b6040518082815260200191505060405180910390f35b81801561140357600080fd5b5061143e6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612ac3565b604051808215151515815260200191505060405180910390f35b81801561146457600080fd5b506114b1600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612af4565b604051808215151515815260200191505060405180910390f35b6114f7600480360381019080803590602001909291908035600019169060200190929190505050612b3e565b6040518082815260200191505060405180910390f35b61154360048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612b71565b6040518082815260200191505060405180910390f35b61159760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ba2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b8180156115e557600080fd5b5061161c60048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612bd6565b604051808215151515815260200191505060405180910390f35b61165e6004803603810190808035906020019092919080359060200190929190505050612c0a565b604051808215151515815260200191505060405180910390f35b6116a4600480360381019080803590602001909291908035600019169060200190929190505050612c37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611732600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c6a565b604051808215151515815260200191505060405180910390f35b61176a60048036038101908080359060200190929190505050612cb4565b6040518082815260200191505060405180910390f35b81801561178c57600080fd5b506117d9600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc5565b604051808215151515815260200191505060405180910390f35b61181160048036038101908080359060200190929190505050612d0f565b6040518082815260200191505060405180910390f35b61184560048036038101908080359060200190929190505050612d20565b6040518082815260200191505060405180910390f35b6118836004803603810190808035906020019092919080359060200190929190505050612d35565b6040518082815260200191505060405180910390f35b8180156118a557600080fd5b506118e06004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612d4c565b604051808215151515815260200191505060405180910390f35b6119226004803603810190808035906020019092919080359060200190929190505050612d7d565b604051808215151515815260200191505060405180910390f35b81801561194857600080fd5b5061198760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d94565b604051808215151515815260200191505060405180910390f35b6119d760048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050612dc4565b6040518082815260200191505060405180910390f35b611a0b60048036038101908080359060200190929190505050612dfc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611a876004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612e15565b604051808215151515815260200191505060405180910390f35b611acd600480360381019080803590602001909291908035600019169060200190929190505050612e46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611b376004803603810190808035906020019092919080359060200190929190505050612e79565b6040518082815260200191505060405180910390f35b611b756004803603810190808035906020019092919080359060200190929190505050612e90565b604051808215151515815260200191505060405180910390f35b611bbb600480360381019080803590602001909291908035600019169060200190929190505050612ea7565b6040518082815260200191505060405180910390f35b611bfd600480360381019080803590602001909291908035600019169060200190929190505050612ed6565b60405180826000191660001916815260200191505060405180910390f35b611c436004803603810190808035906020019092919080359060200190929190505050612eed565b60405180826000191660001916815260200191505060405180910390f35b611c8d600480360381019080803590602001909291908035600019169060200190929190505050612f59565b6040518082815260200191505060405180910390f35b818015611caf57600080fd5b50611cd86004803603810190808035906020019092919080359060200190929190505050612f88565b604051808215151515815260200191505060405180910390f35b611d2c6004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050612fa2565b60405180826000191660001916815260200191505060405180910390f35b611d726004803603810190808035906020019092919080359060200190929190505050612fd3565b6040518082815260200191505060405180910390f35b611da660048036038101908080359060200190929190505050612fea565b6040518082815260200191505060405180910390f35b611de8600480360381019080803590602001909291908035600019169060200190929190505050612fff565b60405180826000191660001916815260200191505060405180910390f35b611e246004803603810190808035906020019092919050505061302e565b60405180826000191660001916815260200191505060405180910390f35b611e7860048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050613065565b6040518082815260200191505060405180910390f35b818015611e9a57600080fd5b50611ed160048036038101908080359060200190929190803560001916906020019092919080359060200190929190505050613096565b604051808215151515815260200191505060405180910390f35b611f09600480360381019080803590602001909291905050506130ca565b6040518082815260200191505060405180910390f35b611f4760048036038101908080359060200190929190803590602001909291905050506130d8565b6040518082815260200191505060405180910390f35b611f7b600480360381019080803590602001909291905050506130f3565b6040518082815260200191505060405180910390f35b611fb96004803603810190808035906020019092919080359060200190929190505050613108565b6040518082815260200191505060405180910390f35b6120096004803603810190808035906020019092919080356000191690602001909291908035600019169060200190929190505050613126565b60405180826000191660001916815260200191505060405180910390f35b61204560048036038101908080359060200190929190505050613157565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6120af6004803603810190808035906020019092919080359060200190929190505050613170565b60405180826000191660001916815260200191505060405180910390f35b6120f56004803603810190808035906020019092919080359060200190929190505050613187565b604051808215151515815260200191505060405180910390f35b61213b60048036038101908080359060200190929190803560001916906020019092919050505061319e565b60405180826000191660001916815260200191505060405180910390f35b6121856004803603810190808035906020019092919080356000191690602001909291905050506131e6565b6040518082815260200191505060405180910390f35b60006121c28360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b60006121d983600001836124e0565b905092915050565b60006121ef826000016130ca565b9050919050565b600061221d836000016000846000191660001916815260200190815260200160002061302e565b60019004905092915050565b60006122378260000161302e565b600190049050919050565b6000612250826000016130ca565b9050919050565b600080600061226685856124e0565b915060008214151561228f5761227c85836123ff565b90506122888582612eed565b9250612297565b600060010292505b505092915050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff16151514156122fd5782600501600183038154811015156122e457fe5b9060005260206000209060030201600201549050612302565b600090505b92915050565b600061231a8360000183600102613215565b905092915050565b600061236384600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102612257565b6001900490509392505050565b600061237e82600001612cb4565b9050919050565b6000612393826000016123c8565b9050919050565b60006123a983600001836123ff565b905092915050565b60006123c08360000183612257565b905092915050565b6000806123d483612cb4565b90506000811415156123f1576123ea8382612eed565b91506123f9565b600060010291505b50919050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff161515141561245d57826005016001830381548110151561244457fe5b9060005260206000209060030201600101549050612462565b600090505b92915050565b6000612493846000016000856000191660001916815260200190815260200160002083600102612a43565b90509392505050565b60006124c38360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b60006124d9826000016130ca565b9050919050565b600080836003016000846000191660001916815260200190815260200160002054148015612512575060008360020154145b156125205760009050612541565b82600301600083600019166000191681526020019081526020016000205490505b92915050565b60006125598360000183600102612257565b60019004905092915050565b600061258d846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b60006125be84600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b60006125ef846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b600061260783600001836123ff565b905092915050565b600061263a84600001600085600019166000191681526020019081526020016000208360010261319e565b6001900490509392505050565b600061266f846000016000856000191660001916815260200190815260200160002083612eed565b6001900490509392505050565b60006126a4836000018373ffffffffffffffffffffffffffffffffffffffff16600102612a43565b905092915050565b60006126bb8360000183613215565b905092915050565b60006126ea83600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b60006127008260000161302e565b9050919050565b6000612716836000018361325b565b905092915050565b600061272c82600001612d0f565b9050919050565b6000612741826000016123c8565b600190049050919050565b600061275a82600001612d0f565b9050919050565b60006127708360000183612a43565b905092915050565b60006127b984600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff1660010261319e565b6001900490509392505050565b60006127f18460000160008560001916600019168152602001908152602001600020836001026124e0565b90509392505050565b60006128218360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b600061285083600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b600061287f836000016000846000191660001916815260200190815260200160002061302e565b905092915050565b60006128af846000016000856000191660001916815260200190815260200160002083612c0a565b90509392505050565b60006128ca83600001836001026124e0565b905092915050565b60006128fa8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b600061292b8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b600061295c836000018373ffffffffffffffffffffffffffffffffffffffff166001026124e0565b905092915050565b600061298c8460000160008560001916600019168152602001908152602001600020836123ff565b90509392505050565b60006129bd836000018373ffffffffffffffffffffffffffffffffffffffff16600102612257565b60019004905092915050565b60006129f08360000160008460001916600019168152602001908152602001600020612cb4565b905092915050565b6000612a20836000018373ffffffffffffffffffffffffffffffffffffffff16600102613215565b905092915050565b6000612a378360000183612eed565b60019004905092915050565b600080836003016000846000191660001916815260200190815260200160002054905083600401600082815260200190815260200160002060009054906101000a900460ff1691505092915050565b6000612aa48360000183600102612a43565b905092915050565b6000612abb836000018361229f565b905092915050565b6000612aeb84600001600085600019166000191681526020019081526020016000208361325b565b90509392505050565b6000612b3584600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff1660010261325b565b90509392505050565b6000612b6583600001600084600019166000191681526020019081526020016000206123c8565b60019004905092915050565b6000612b9984600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b6000612bca836000018373ffffffffffffffffffffffffffffffffffffffff1660010261319e565b60019004905092915050565b6000612c01846000016000856000191660001916815260200190815260200160002083600102613215565b90509392505050565b600082600401600083815260200190815260200160002060009054906101000a900460ff16905092915050565b6000612c5e836000016000846000191660001916815260200190815260200160002061302e565b60019004905092915050565b6000612cab84600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102612a43565b90509392505050565b600081600101549050809050919050565b6000612d0684600001600085600019166000191681526020019081526020016000208373ffffffffffffffffffffffffffffffffffffffff16600102613215565b90509392505050565b600081600001549050809050919050565b6000612d2e82600001612cb4565b9050919050565b6000612d4483600001836123ff565b905092915050565b6000612d74846000016000856000191660001916815260200190815260200160002083613215565b90509392505050565b6000612d8c8360000183612c0a565b905092915050565b6000612dbc836000018373ffffffffffffffffffffffffffffffffffffffff1660010261325b565b905092915050565b6000612def846000016000856000191660001916815260200190815260200160002083600102612257565b6001900490509392505050565b6000612e0a8260000161302e565b600190049050919050565b6000612e3d846000016000856000191660001916815260200190815260200160002083612a43565b90509392505050565b6000612e6d83600001600084600019166000191681526020019081526020016000206123c8565b60019004905092915050565b6000612e88836000018361229f565b905092915050565b6000612e9f8360000183612c0a565b905092915050565b6000612ece8360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b6000612ee5836000018361319e565b905092915050565b60006001151583600401600084815260200190815260200160002060009054906101000a900460ff1615151415612f4b578260050160018303815481101515612f3257fe5b9060005260206000209060030201600001549050612f53565b600060010290505b92915050565b6000612f8083600001600084600019166000191681526020019081526020016000206130ca565b905092915050565b6000612f9a836000018360010261325b565b905092915050565b6000612fca846000016000856000191660001916815260200190815260200160002083612257565b90509392505050565b6000612fe2836000018361229f565b905092915050565b6000612ff882600001612cb4565b9050919050565b600061302683600001600084600019166000191681526020019081526020016000206123c8565b905092915050565b60008061303a83612d0f565b9050600081141515613057576130508382612eed565b915061305f565b600060010291505b50919050565b600061308d84600001600085600019166000191681526020019081526020016000208361229f565b90509392505050565b60006130c184600001600085600019166000191681526020019081526020016000208360010261325b565b90509392505050565b600081600201549050919050565b60006130e78360000183612eed565b60019004905092915050565b600061310182600001612d0f565b9050919050565b600061311a836000018360010261319e565b60019004905092915050565b600061314e84600001600085600019166000191681526020019081526020016000208361319e565b90509392505050565b6000613165826000016123c8565b600190049050919050565b600061317f8360000183612eed565b905092915050565b60006131968360000183612c0a565b905092915050565b60008060006131ad85856124e0565b91506000821415156131d6576131c3858361229f565b90506131cf8582612eed565b92506131de565b600060010292505b505092915050565b600061320d8360000160008460001916600019168152602001908152602001600020612d0f565b905092915050565b60008061322284846124e0565b905060008114151561324c5761323884826133ff565b151561324357600080fd5b60019150613251565b600091505b8191505092915050565b600080600061326a85856124e0565b14158061327e575060008019168360001916145b1561328c57600091506133f8565b83600501606060405190810160405280856000191681526020018660010154815260200160008152509080600181540180825580915050906001820390600052602060002090600302016000909192909190915060008201518160000190600019169055602082015181600101556040820151816002015550509050600084600101541415613357576000846000015414158061332e57506000846002015414155b1561333857600080fd5b80846001018190558460000181905550600184600201819055506133a3565b8084600501600186600101540381548110151561337057fe5b90600052602060002090600302016002018190555080846001018190555083600201600081548092919060010191905055505b600184600401600083815260200190815260200160002060006101000a81548160ff02191690831515021790555080846003016000856000191660001916815260200190815260200160002081905550600191505b5092915050565b60006134096135ec565b6001151584600401600085815260200190815260200160002060009054906101000a900460ff16151514156135e057836005016001840381548110151561344c57fe5b9060005260206000209060030201606060405190810160405290816000820154600019166000191681526020016001820154815260200160028201548152505090506000816020015114156134ad57806040015184600001819055506134e0565b80604001518460050160018360200151038154811015156134ca57fe5b9060005260206000209060030201600201819055505b6000816040015114156134ff5780602001518460010181905550613532565b806020015184600501600183604001510381548110151561351c57fe5b9060005260206000209060030201600101819055505b836005016001840381548110151561354657fe5b9060005260206000209060030201600080820160009055600182016000905560028201600090555050600084600401600085815260200190815260200160002060006101000a81548160ff02191690831515021790555083600301600082600001516000191660001916815260200190815260200160002060009055836002016000815480929190600190039190505550600191506135e5565b600091505b5092915050565b60606040519081016040528060008019168152602001600081526020016000815250905600a165627a7a723058200f0b289fd96ccd44d9d7d2b302d5a948f1ad92aa9616a5ed91f65d9ef09c44500029",
  "sourceMap": "26:25428:81:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
  "deployedSourceMap": "26:25428:81:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19324:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20168:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11210:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7540:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13924:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5232:414;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5650:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7054:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7054:170:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18497:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14425:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20801:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15115:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21533:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4159:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4898:330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12096:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23472:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7228:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;786:291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8612:234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11866:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12891:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23897:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21318:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13142:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9895:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14928:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20002:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20002:162:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16665:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20482:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19685:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19685:152:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14089:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7866:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7390:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21142:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19045:274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9653:238;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11443:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10792:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23238:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17754;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6354:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24366:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12333:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9270:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18227:266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15332:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17325:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13747:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13747:173:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9462:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4670:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8214:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21754:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22158:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22158:214:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15999:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15999:216:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11642:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18791:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15774:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10565:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10565:223:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4432:234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17089:231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17987:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16435:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16435:226:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3517:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20654:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22590:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22590:224:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14748:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13417:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13417:163:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12600:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14242:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24128:234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17527:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15573:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8037:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23034:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21953:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1081:283;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22818:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6731:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6731:160:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24634:288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8850:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7720:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23672:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24926:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10136:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10136:213:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3361:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6543:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20331:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9048:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25178:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14574:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19505:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20964:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:386;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11007:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:202;17012:14;17045:35;17051:4;:9;;:28;17061:17;17051:28;;;;;;;;;;;;;;;;;17045:5;:35::i;:::-;17036:44;;16883:202;;;;:::o;19324:177::-;19431:19;19474:22;19479:4;:9;;19490:5;19474:4;:22::i;:::-;19460:36;;19324:177;;;;:::o;20168:159::-;20261:20;20306:16;20312:4;:9;;20306:5;:16::i;:::-;20291:31;;20168:159;;;:::o;11210:228::-;11341:19;11392:40;11403:4;:9;;:28;11413:17;11403:28;;;;;;;;;;;;;;;;;11392:10;:40::i;:::-;11384:49;;;11370:63;;11210:228;;;;:::o;7540:175::-;7637:19;7688:21;7699:4;:9;;7688:10;:21::i;:::-;7680:30;;;7666:44;;7540:175;;;:::o;13924:161::-;14019:20;14064:16;14070:4;:9;;14064:5;:16::i;:::-;14049:31;;13924:161;;;:::o;5232:414::-;5355:22;5387;5479:23;5412:25;5417:4;5423:13;5412:4;:25::i;:::-;5387:50;;684:1;5447:14;:22;;5443:199;;;5505:30;5514:4;5520:14;5505:8;:30::i;:::-;5479:56;;5560:26;5564:4;5570:15;5560:3;:26::i;:::-;5543:43;;5443:199;;;729:3;721:12;;5607:28;;5443:199;5232:414;;;;;;:::o;5650:310::-;5765:19;5836:4;5798:42;;:4;:18;;:34;5817:14;5798:34;;;;;;;;;;;;;;;;;;;;;:42;;;5794:162;;;5864:4;:15;;5897:1;5880:14;:18;5864:35;;;;;;;;;;;;;;;;;;;;:46;;;5850:60;;5794:162;;;684:1;5931:18;;5794:162;5650:310;;;;:::o;7054:170::-;7147:13;7181:38;7193:4;:9;;7212:5;7204:14;;7181:11;:38::i;:::-;7170:49;;7054:170;;;;:::o;18497:290::-;18657:22;18714:67;18728:4;:9;;:28;18738:17;18728:28;;;;;;;;;;;;;;;;;18766:13;18758:22;;;;18714:13;:67::i;:::-;18706:76;;;18689:93;;18497:290;;;;;:::o;14425:145::-;14518:14;14551;14555:4;:9;;14551:3;:14::i;:::-;14542:23;;14425:145;;;:::o;20801:159::-;20897:17;20936:19;20945:4;:9;;20936:8;:19::i;:::-;20924:31;;20801:159;;;:::o;15115:213::-;15237:23;15288:35;15297:4;:9;;15308:14;15288:8;:35::i;:::-;15270:53;;15115:213;;;;:::o;21533:217::-;21657:22;21706:39;21720:4;:9;;21731:13;21706;:39::i;:::-;21689:56;;21533:217;;;;:::o;4159:269::-;4254:13;4277:19;4299:9;4303:4;4299:3;:9::i;:::-;4277:31;;684:1;4318:11;:19;;4314:110;;;4355:22;4359:4;4365:11;4355:3;:22::i;:::-;4347:30;;4314:110;;;729:3;721:12;;4398:19;;4314:110;4159:269;;;;:::o;4898:330::-;5017:23;5092:4;5054:42;;:4;:18;;:34;5073:14;5054:34;;;;;;;;;;;;;;;;;;;;;:42;;;5050:174;;;5124:4;:15;;5157:1;5140:14;:18;5124:35;;;;;;;;;;;;;;;;;;;;:50;;;5106:68;;5050:174;;;684:1;5195:22;;5050:174;4898:330;;;;:::o;12096:233::-;12242:9;12268:56;12279:4;:9;;:28;12289:17;12279:28;;;;;;;;;;;;;;;;;12317:5;12309:14;;12268:10;:56::i;:::-;12261:63;;12096:233;;;;;:::o;23472:196::-;23597:14;23630:33;23634:4;:9;;:28;23644:17;23634:28;;;;;;;;;;;;;;;;;23630:3;:33::i;:::-;23621:42;;23472:196;;;;:::o;7228:158::-;7320:20;7365:16;7371:4;:9;;7365:5;:16::i;:::-;7350:31;;7228:158;;;:::o;786:291::-;892:19;684:1;926:4;:15;;:22;942:5;926:22;;;;;;;;;;;;;;;;;;:30;925:56;;;;;684:1;962:4;:10;;;:18;925:56;921:152;;;684:1;991:18;;921:152;;;1044:4;:15;;:22;1060:5;1044:22;;;;;;;;;;;;;;;;;;1030:36;;921:152;786:291;;;;:::o;8612:234::-;8735:22;8792:48;8806:4;:9;;8825:13;8817:22;;8792:13;:48::i;:::-;8784:57;;;8767:74;;8612:234;;;;:::o;11866:226::-;12013:9;12039:48;12045:4;:9;;:28;12055:17;12045:28;;;;;;;;;;;;;;;;;12075:11;12039:5;:48::i;:::-;12032:55;;11866:226;;;;;:::o;12891:247::-;13040:19;13083:50;13088:4;:9;;:28;13098:17;13088:28;;;;;;;;;;;;;;;;;13118:14;13083:4;:50::i;:::-;13069:64;;12891:247;;;;;:::o;23897:227::-;24045:9;24071:48;24077:4;:9;;:28;24087:17;24077:28;;;;;;;;;;;;;;;;;24107:11;24071:5;:48::i;:::-;24064:55;;23897:227;;;;;:::o;21318:211::-;21438:23;21489:35;21498:4;:9;;21509:14;21489:8;:35::i;:::-;21471:53;;21318:211;;;;:::o;13142:271::-;13295:18;13344:63;13354:4;:9;;:28;13364:17;13354:28;;;;;;;;;;;;;;;;;13392:13;13384:22;;13344:9;:63::i;:::-;13336:72;;;13323:85;;13142:271;;;;;:::o;9895:236::-;10040:13;10079:46;10083:4;:9;;:28;10093:17;10083:28;;;;;;;;;;;;;;;;;10113:11;10079:3;:46::i;:::-;10071:55;;;10063:63;;9895:236;;;;;:::o;14928:183::-;15043:9;15069:37;15080:4;:9;;15099:5;15091:14;;;;15069:10;:37::i;:::-;15062:44;;14928:183;;;;:::o;20002:162::-;20096:13;20130:29;20142:4;:9;;20153:5;20130:11;:29::i;:::-;20119:40;;20002:162;;;;:::o;16665:214::-;16794:20;16839:35;16845:4;:9;;:28;16855:17;16845:28;;;;;;;;;;;;;;;;;16839:5;:35::i;:::-;16824:50;;16665:214;;;;:::o;20482:167::-;20580:19;20623:21;20634:4;:9;;20623:10;:21::i;:::-;20609:35;;20482:167;;;:::o;19685:152::-;19774:13;19808:24;19815:4;:9;;19826:5;19808:6;:24::i;:::-;19797:35;;19685:152;;;;:::o;14089:149::-;14184:14;14217:16;14223:4;:9;;14217:5;:16::i;:::-;14208:25;;14089:149;;;:::o;7866:167::-;7961:17;8008:19;8017:4;:9;;8008:8;:19::i;:::-;8000:28;;;7988:40;;7866:167;;;:::o;7390:146::-;7482:14;7515:16;7521:4;:9;;7515:5;:16::i;:::-;7506:25;;7390:146;;;:::o;21142:172::-;21255:9;21281:28;21292:4;:9;;21303:5;21281:10;:28::i;:::-;21274:35;;21142:172;;;;:::o;19045:274::-;19201:18;19250:63;19260:4;:9;;:28;19270:17;19260:28;;;;;;;;;;;;;;;;;19298:13;19290:22;;;;19250:9;:63::i;:::-;19242:72;;;19229:85;;19045:274;;;;;:::o;9653:238::-;9793:19;9836:50;9841:4;:9;;:28;9851:17;9841:28;;;;;;;;;;;;;;;;;9879:5;9871:14;;9836:4;:50::i;:::-;9822:64;;9653:238;;;;;:::o;11443:195::-;11567:14;11600:33;11604:4;:9;;:28;11614:17;11604:28;;;;;;;;;;;;;;;;;11600:3;:33::i;:::-;11591:42;;11443:195;;;;:::o;10792:211::-;10918:20;10963:35;10969:4;:9;;:28;10979:17;10969:28;;;;;;;;;;;;;;;;;10963:5;:35::i;:::-;10948:50;;10792:211;;;;:::o;23238:229::-;23370:19;23421:40;23432:4;:9;;:28;23442:17;23432:28;;;;;;;;;;;;;;;;;23421:10;:40::i;:::-;23399:63;;23238:229;;;;:::o;17754:::-;17904:9;17930:48;17936:4;:9;;:28;17946:17;17936:28;;;;;;;;;;;;;;;;;17966:11;17930:5;:48::i;:::-;17923:55;;17754:229;;;;;:::o;6354:185::-;6460:19;6503:31;6508:4;:9;;6527:5;6519:14;;6503:4;:31::i;:::-;6489:45;;6354:185;;;;:::o;24366:264::-;24520:23;24571:54;24580:4;:9;;:28;24590:17;24580:28;;;;;;;;;;;;;;;;;24610:14;24571:8;:54::i;:::-;24553:72;;24366:264;;;;;:::o;12333:263::-;12486:23;12537:54;12546:4;:9;;:28;12556:17;12546:28;;;;;;;;;;;;;;;;;12576:14;12537:8;:54::i;:::-;12519:72;;12333:263;;;;;:::o;9270:188::-;9379:19;9422:31;9427:4;:9;;9446:5;9438:14;;;;9422:4;:31::i;:::-;9408:45;;9270:188;;;;:::o;18227:266::-;18383:23;18434:54;18443:4;:9;;:28;18453:17;18443:28;;;;;;;;;;;;;;;;;18473:14;18434:8;:54::i;:::-;18416:72;;18227:266;;;;;:::o;15332:237::-;15458:22;15515:48;15529:4;:9;;15548:13;15540:22;;;;15515:13;:48::i;:::-;15507:57;;;15490:74;;15332:237;;;;:::o;17325:198::-;17452:14;17485:33;17489:4;:9;;:28;17499:17;17489:28;;;;;;;;;;;;;;;;;17485:3;:33::i;:::-;17476:42;;17325:198;;;;:::o;13747:173::-;13843:13;13877:38;13889:4;:9;;13908:5;13900:14;;;;13877:11;:38::i;:::-;13866:49;;13747:173;;;;:::o;9462:186::-;9576:13;9615:27;9619:4;:9;;9630:11;9615:3;:27::i;:::-;9607:36;;;9599:44;;9462:186;;;;:::o;4670:224::-;4782:9;4801:19;4823:4;:15;;:22;4839:5;4823:22;;;;;;;;;;;;;;;;;;4801:44;;4858:4;:18;;:31;4877:11;4858:31;;;;;;;;;;;;;;;;;;;;;4851:38;;4670:224;;;;;:::o;8214:180::-;8326:9;8352:37;8363:4;:9;;8382:5;8374:14;;8352:10;:37::i;:::-;8345:44;;8214:180;;;;:::o;21754:195::-;21870:19;21913:31;21918:4;:9;;21929:14;21913:4;:31::i;:::-;21899:45;;21754:195;;;;:::o;22158:214::-;22281:13;22315:52;22322:4;:9;;:28;22332:17;22322:28;;;;;;;;;;;;;;;;;22360:5;22315:6;:52::i;:::-;22304:63;;22158:214;;;;;:::o;15999:216::-;16124:13;16158:52;16165:4;:9;;:28;16175:17;16165:28;;;;;;;;;;;;;;;;;16203:5;16195:14;;;;16158:6;:52::i;:::-;16147:63;;15999:216;;;;;:::o;11642:220::-;11771:17;11818:38;11827:4;:9;;:28;11837:17;11827:28;;;;;;;;;;;;;;;;;11818:8;:38::i;:::-;11810:47;;;11798:59;;11642:220;;;;:::o;18791:250::-;18943:19;18986:50;18991:4;:9;;:28;19001:17;18991:28;;;;;;;;;;;;;;;;;19021:14;18986:4;:50::i;:::-;18972:64;;18791:250;;;;;:::o;15774:221::-;15896:18;15945:44;15955:4;:9;;15974:13;15966:22;;;;15945:9;:44::i;:::-;15937:53;;;15924:66;;15774:221;;;;:::o;10565:223::-;10692:13;10726:57;10738:4;:9;;:28;10748:17;10738:28;;;;;;;;;;;;;;;;;10776:5;10768:14;;10726:11;:57::i;:::-;10715:68;;10565:223;;;;;:::o;4432:234::-;4545:9;4571:4;:18;;:31;4590:11;4571:31;;;;;;;;;;;;;;;;;;;;;4564:38;;4432:234;;;;:::o;17089:231::-;17223:19;17274:40;17285:4;:9;;:28;17295:17;17285:28;;;;;;;;;;;;;;;;;17274:10;:40::i;:::-;17266:49;;;17252:63;;17089:231;;;;:::o;17987:236::-;18136:9;18162:56;18173:4;:9;;:28;18183:17;18173:28;;;;;;;;;;;;;;;;;18211:5;18203:14;;;;18162:10;:56::i;:::-;18155:63;;17987:236;;;;;:::o;3978:177::-;4068:19;4111:4;:15;;;4097:29;;4139:11;4132:18;;3978:177;;;:::o;16435:226::-;16565:13;16599:57;16611:4;:9;;:28;16621:17;16611:28;;;;;;;;;;;;;;;;;16649:5;16641:14;;;;16599:11;:57::i;:::-;16588:68;;16435:226;;;;;:::o;3517:180::-;3609:19;3652:4;:16;;;3638:30;;3681:11;3674:18;;3517:180;;;:::o;20654:143::-;20745:14;20778;20782:4;:9;;20778:3;:14::i;:::-;20769:23;;20654:143;;;:::o;8398:210::-;8517:23;8568:35;8577:4;:9;;8588:14;8568:8;:35::i;:::-;8550:53;;8398:210;;;;:::o;22590:224::-;22718:13;22752:57;22764:4;:9;;:28;22774:17;22764:28;;;;;;;;;;;;;;;;;22802:5;22752:11;:57::i;:::-;22741:68;;22590:224;;;;;:::o;14748:176::-;14864:9;14890:29;14896:4;:9;;14907:11;14890:5;:29::i;:::-;14883:36;;14748:176;;;;:::o;13417:163::-;13508:13;13542:33;13549:4;:9;;13568:5;13560:14;;;;13542:6;:33::i;:::-;13531:44;;13417:163;;;;:::o;12600:287::-;12757:22;12814:67;12828:4;:9;;:28;12838:17;12828:28;;;;;;;;;;;;;;;;;12866:13;12858:22;;12814:13;:67::i;:::-;12806:76;;;12789:93;;12600:287;;;;;:::o;14242:178::-;14342:19;14393:21;14404:4;:9;;14393:10;:21::i;:::-;14385:30;;;14371:44;;14242:178;;;:::o;24128:234::-;24275:9;24301:56;24312:4;:9;;:28;24322:17;24312:28;;;;;;;;;;;;;;;;;24350:5;24301:10;:56::i;:::-;24294:63;;24128:234;;;;;:::o;17527:223::-;17659:17;17706:38;17715:4;:9;;:28;17725:17;17715:28;;;;;;;;;;;;;;;;;17706:8;:38::i;:::-;17698:47;;;17686:59;;17527:223;;;;:::o;15573:197::-;15691:19;15734:31;15739:4;:9;;15750:14;15734:4;:31::i;:::-;15720:45;;15573:197;;;;:::o;8037:173::-;8150:9;8176:29;8182:4;:9;;8193:11;8176:5;:29::i;:::-;8169:36;;8037:173;;;;:::o;23034:200::-;23161:14;23194:35;23200:4;:9;;:28;23210:17;23200:28;;;;;;;;;;;;;;;;;23194:5;:35::i;:::-;23185:44;;23034:200;;;;:::o;21953:201::-;22073:18;22114:35;22124:4;:9;;22135:13;22114:9;:35::i;:::-;22101:48;;21953:201;;;;:::o;1081:283::-;1192:13;1254:4;1219:39;;:4;:18;;:31;1238:11;1219:31;;;;;;;;;;;;;;;;;;;;;:39;;;1215:145;;;1276:4;:15;;1306:1;1292:11;:15;1276:32;;;;;;;;;;;;;;;;;;;;:37;;;1268:45;;1215:145;;;729:3;721:12;;1334:19;;1215:145;1081:283;;;;:::o;22818:212::-;22945:20;22990:35;22996:4;:9;;:28;23006:17;22996:28;;;;;;;;;;;;;;;;;22990:5;:35::i;:::-;22975:50;;22818:212;;;;:::o;6731:160::-;6819:13;6853:33;6860:4;:9;;6879:5;6871:14;;6853:6;:33::i;:::-;6842:44;;6731:160;;;;:::o;24634:288::-;24792:22;24849:67;24863:4;:9;;:28;24873:17;24863:28;;;;;;;;;;;;;;;;;24901:13;24849;:67::i;:::-;24824:93;;24634:288;;;;;:::o;8850:194::-;8965:19;9008:31;9013:4;:9;;9024:14;9008:4;:31::i;:::-;8994:45;;8850:194;;;;:::o;7720:142::-;7810:14;7843;7847:4;:9;;7843:3;:14::i;:::-;7834:23;;7720:142;;;:::o;23672:221::-;23802:17;23849:38;23858:4;:9;;:28;23868:17;23858:28;;;;;;;;;;;;;;;;;23849:8;:38::i;:::-;23829:59;;23672:221;;;;:::o;3701:273::-;3798:13;3821:19;3843:11;3849:4;3843:5;:11::i;:::-;3821:33;;684:1;3864:11;:19;;3860:110;;;3901:22;3905:4;3911:11;3901:3;:22::i;:::-;3893:30;;3860:110;;;729:3;721:12;;3944:19;;3860:110;3701:273;;;;:::o;24926:248::-;25076:19;25119:50;25124:4;:9;;:28;25134:17;25124:28;;;;;;;;;;;;;;;;;25154:14;25119:4;:50::i;:::-;25105:64;;24926:248;;;;;:::o;10136:213::-;10258:13;10292:52;10299:4;:9;;:28;10309:17;10299:28;;;;;;;;;;;;;;;;;10337:5;10329:14;;10292:6;:52::i;:::-;10281:63;;10136:213;;;;;:::o;3361:152::-;3453:20;3498:4;:10;;;3483:25;;3361:152;;;:::o;6543:183::-;6654:13;6693:27;6697:4;:9;;6708:11;6693:3;:27::i;:::-;6685:36;;;6677:44;;6543:183;;;;:::o;20331:147::-;20424:14;20457:16;20463:4;:9;;20457:5;:16::i;:::-;20448:25;;20331:147;;;:::o;9048:218::-;9167:18;9216:44;9226:4;:9;;9245:13;9237:22;;9216:9;:44::i;:::-;9208:53;;;9195:66;;9048:218;;;;:::o;25178:272::-;25332:18;25381:63;25391:4;:9;;:28;25401:17;25391:28;;;;;;;;;;;;;;;;;25429:13;25381:9;:63::i;:::-;25360:85;;25178:272;;;;;:::o;14574:170::-;14672:17;14719:19;14728:4;:9;;14719:8;:19::i;:::-;14711:28;;;14699:40;;14574:170;;;:::o;19505:175::-;19617:13;19648:27;19652:4;:9;;19663:11;19648:3;:27::i;:::-;19640:35;;19505:175;;;;:::o;20964:174::-;21078:9;21104:29;21110:4;:9;;21121:11;21104:5;:29::i;:::-;21097:36;;20964:174;;;;:::o;5964:386::-;6083:18;6111:22;6203:19;6136:25;6141:4;6147:13;6136:4;:25::i;:::-;6111:50;;684:1;6171:14;:22;;6167:179;;;6225:26;6230:4;6236:14;6225:4;:26::i;:::-;6203:48;;6272:22;6276:4;6282:11;6272:3;:22::i;:::-;6259:35;;6167:179;;;729:3;721:12;;6315:24;;6167:179;5964:386;;;;;;:::o;11007:199::-;11133:14;11166:35;11172:4;:9;;:28;11182:17;11172:28;;;;;;;;;;;;;;;;;11166:5;:35::i;:::-;11157:44;;11007:199;;;;:::o;3035:322::-;3130:13;3153:19;3175:17;3180:4;3186:5;3175:4;:17::i;:::-;3153:39;;684:1;3202:11;:19;;3198:134;;;3239:25;3246:4;3252:11;3239:6;:25::i;:::-;3231:34;;;;;;;;3284:4;3273:15;;3198:134;;;3320:5;3309:16;;3198:134;3344:8;3337:15;;3035:322;;;;;:::o;1368:857::-;1458:13;1617:14;684:1;1485:17;1490:4;1496:5;1485:4;:17::i;:::-;:25;;:49;;;;1523:11;1514:20;;;:5;:20;;;;1485:49;1481:740;;;1591:5;1580:16;;1481:740;;;1642:4;:15;;1663:70;;;;;;;;;1675:5;1663:70;;;;;;;1698:4;:15;;;1663:70;;;;684:1;1663:70;;;1642:92;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1642:92:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1617:118;;684:1;1747:4;:15;;;:23;1743:369;;;684:1;1787:4;:16;;;:24;;1786:50;;;;684:1;1817:4;:10;;;:18;;1786:50;1782:185;;;1850:8;;;1782:185;1924:6;1906:4;:15;;:24;;;1887:4;:16;;:43;;;;1955:1;1942:4;:10;;:14;;;;1743:369;;;2041:6;1991:4;:15;;2025:1;2007:4;:15;;;:19;1991:36;;;;;;;;;;;;;;;;;;;;:47;;:56;;;;2075:6;2057:4;:15;;:24;;;;2091:4;:10;;;:12;;;;;;;;;;;;;1743:369;2148:4;2119;:18;;:26;2138:6;2119:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2185:6;2160:4;:15;;:22;2176:5;2160:22;;;;;;;;;;;;;;;;;:31;;;;2210:4;2199:15;;1481:740;1368:857;;;;;:::o;2229:802::-;2320:13;2391:16;;:::i;:::-;2377:4;2347:34;;:4;:18;;:26;2366:6;2347:26;;;;;;;;;;;;;;;;;;;;;:34;;;2343:684;;;2410:4;:15;;2435:1;2426:6;:10;2410:27;;;;;;;;;;;;;;;;;;;;2391:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:1;2449:4;:19;;;:27;2445:180;;;2507:4;:15;;;2488:4;:16;;:34;;;;2445:180;;;2601:4;:15;;;2547:4;:15;;2585:1;2563:4;:19;;;:23;2547:40;;;;;;;;;;;;;;;;;;;;:51;;:69;;;;2445:180;684:1;2637:4;:15;;;:23;2633:183;;;2690:4;:19;;;2672:4;:15;;:37;;;;2633:183;;;2788:4;:19;;;2734:4;:15;;2768:1;2750:4;:15;;;:19;2734:36;;;;;;;;;;;;;;;;;;;;:51;;:73;;;;2633:183;2830:4;:15;;2855:1;2846:6;:10;2830:27;;;;;;;;;;;;;;;;;;;;;2823:34;;;;;;;;;;;;;;;;;;;;2894:5;2865:4;:18;;:26;2884:6;2865:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;2914:4;:15;;:26;2930:4;:9;;;2914:26;;;;;;;;;;;;;;;;;2907:33;;;2948:4;:10;;;:12;;;;;;;;;;;;;;2979:4;2968:15;;2343:684;;;3015:5;3004:16;;2343:684;2229:802;;;;;:::o;26:25428::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.19;\n\nlibrary DoublyLinkedList {\n\n  struct Item {\n    bytes32 item;\n    uint256 previous_index;\n    uint256 next_index;\n  }\n\n  struct Data {\n    uint256 first_index;\n    uint256 last_index;\n    uint256 count;\n    mapping(bytes32 => uint256) item_index;\n    mapping(uint256 => bool) valid_indexes;\n    Item[] collection;\n  }\n\n  struct IndexedUint {\n    mapping(bytes32 => Data) data;\n  }\n\n  struct IndexedAddress {\n    mapping(bytes32 => Data) data;\n  }\n\n  struct IndexedBytes {\n    mapping(bytes32 => Data) data;\n  }\n\n  struct Address {\n    Data data;\n  }\n\n  struct Bytes {\n    Data data;\n  }\n\n  struct Uint {\n    Data data;\n  }\n\n  uint256 constant NONE = uint256(0);\n  bytes32 constant EMPTY_BYTES = bytes32(0x0);\n  address constant NULL_ADDRESS = address(0x0);\n\n  function find(Data storage self, bytes32 _item)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    if ((self.item_index[_item] == NONE) && (self.count == NONE)) {\n      _item_index = NONE;\n    } else {\n      _item_index = self.item_index[_item];\n    }\n  }\n\n  function get(Data storage self, uint256 _item_index)\n           public\n           constant\n           returns (bytes32 _item)\n  {\n    if (self.valid_indexes[_item_index] == true) {\n      _item = self.collection[_item_index - 1].item;\n    } else {\n      _item = EMPTY_BYTES;\n    }\n  }\n\n  function append(Data storage self, bytes32 _data)\n           internal\n           returns (bool _success)\n  {\n    if (find(self, _data) != NONE || _data == bytes32(\"\")) { // rejects addition of empty values\n      _success = false;\n    } else {\n      uint256 _index = uint256(self.collection.push(Item({item: _data, previous_index: self.last_index, next_index: NONE})));\n      if (self.last_index == NONE) {\n        if ((self.first_index != NONE) || (self.count != NONE)) {\n          revert();\n        } else {\n          self.first_index = self.last_index = _index;\n          self.count = 1;\n        }\n      } else {\n        self.collection[self.last_index - 1].next_index = _index;\n        self.last_index = _index;\n        self.count++;\n      }\n      self.valid_indexes[_index] = true;\n      self.item_index[_data] = _index;\n      _success = true;\n    }\n  }\n\n  function remove(Data storage self, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    if (self.valid_indexes[_index] == true) {\n      Item memory item = self.collection[_index - 1];\n      if (item.previous_index == NONE) {\n        self.first_index = item.next_index;\n      } else {\n        self.collection[item.previous_index - 1].next_index = item.next_index;\n      }\n\n      if (item.next_index == NONE) {\n        self.last_index = item.previous_index;\n      } else {\n        self.collection[item.next_index - 1].previous_index = item.previous_index;\n      }\n      delete self.collection[_index - 1];\n      self.valid_indexes[_index] = false;\n      delete self.item_index[item.item];\n      self.count--;\n      _success = true;\n    } else {\n      _success = false;\n    }\n  }\n\n  function remove_item(Data storage self, bytes32 _item)\n           internal\n           returns (bool _success)\n  {\n    uint256 _item_index = find(self, _item);\n    if (_item_index != NONE) {\n      require(remove(self, _item_index));\n      _success = true;\n    } else {\n      _success = false;\n    }\n    return _success;\n  }\n\n  function total(Data storage self)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = self.count;\n  }\n\n  function start(Data storage self)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = self.first_index;\n    return _item_index;\n  }\n\n  function start_item(Data storage self)\n           public\n           constant\n           returns (bytes32 _item)\n  {\n    uint256 _item_index = start(self);\n    if (_item_index != NONE) {\n      _item = get(self, _item_index);\n    } else {\n      _item = EMPTY_BYTES;\n    }\n  }\n\n  function end(Data storage self)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = self.last_index;\n    return _item_index;\n  }\n\n  function end_item(Data storage self)\n           public\n           constant\n           returns (bytes32 _item)\n  {\n    uint256 _item_index = end(self);\n    if (_item_index != NONE) {\n      _item = get(self, _item_index);\n    } else {\n      _item = EMPTY_BYTES;\n    }\n  }\n\n  function valid(Data storage self, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = self.valid_indexes[_item_index];\n    //_yes = ((_item_index - 1) < self.collection.length);\n  }\n\n  function valid_item(Data storage self, bytes32 _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    uint256 _item_index = self.item_index[_item];\n    _yes = self.valid_indexes[_item_index];\n  }\n\n  function previous(Data storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    if (self.valid_indexes[_current_index] == true) {\n      _previous_index = self.collection[_current_index - 1].previous_index;\n    } else {\n      _previous_index = NONE;\n    }\n  }\n\n  function previous_item(Data storage self, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _previous_item)\n  {\n    uint256 _current_index = find(self, _current_item);\n    if (_current_index != NONE) {\n      uint256 _previous_index = previous(self, _current_index);\n      _previous_item = get(self, _previous_index);\n    } else {\n      _previous_item = EMPTY_BYTES;\n    }\n  }\n\n  function next(Data storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    if (self.valid_indexes[_current_index] == true) {\n      _next_index = self.collection[_current_index - 1].next_index;\n    } else {\n      _next_index = NONE;\n    }\n  }\n\n  function next_item(Data storage self, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _next_item)\n  {\n    uint256 _current_index = find(self, _current_item);\n    if (_current_index != NONE) {\n      uint256 _next_index = next(self, _current_index);\n      _next_item = get(self, _next_index);\n    } else {\n      _next_item = EMPTY_BYTES;\n    }\n  }\n\n  function find(Uint storage self, uint256 _item)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = find(self.data, bytes32(_item));\n  }\n\n  function get(Uint storage self, uint256 _item_index)\n           public\n           constant\n           returns (uint256 _item)\n  {\n    _item = uint256(get(self.data, _item_index));\n  }\n\n\n  function append(Uint storage self, uint256 _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data, bytes32(_data));\n  }\n\n  function remove(Uint storage self, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data, _index);\n  }\n\n  function remove_item(Uint storage self, uint256 _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data, bytes32(_item));\n  }\n\n  function total(Uint storage self)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data);\n  }\n\n  function start(Uint storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data);\n  }\n\n  function start_item(Uint storage self)\n           public\n           constant\n           returns (uint256 _start_item)\n  {\n    _start_item = uint256(start_item(self.data));\n  }\n\n\n  function end(Uint storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data);\n  }\n\n  function end_item(Uint storage self)\n           public\n           constant\n           returns (uint256 _end_item)\n  {\n    _end_item = uint256(end_item(self.data));\n  }\n\n  function valid(Uint storage self, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data, _item_index);\n  }\n\n  function valid_item(Uint storage self, uint256 _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data, bytes32(_item));\n  }\n\n  function previous(Uint storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data, _current_index);\n  }\n\n  function previous_item(Uint storage self, uint256 _current_item)\n           public\n           constant\n           returns (uint256 _previous_item)\n  {\n    _previous_item = uint256(previous_item(self.data, bytes32(_current_item)));\n  }\n\n  function next(Uint storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data, _current_index);\n  }\n\n  function next_item(Uint storage self, uint256 _current_item)\n           public\n           constant\n           returns (uint256 _next_item)\n  {\n    _next_item = uint256(next_item(self.data, bytes32(_current_item)));\n  }\n\n  function find(Address storage self, address _item)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = find(self.data, bytes32(_item));\n  }\n\n  function get(Address storage self, uint256 _item_index)\n           public\n           constant\n           returns (address _item)\n  {\n    _item = address(get(self.data, _item_index));\n  }\n\n\n  function find(IndexedUint storage self, bytes32 _collection_index, uint256 _item)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = find(self.data[_collection_index], bytes32(_item));\n  }\n\n  function get(IndexedUint storage self, bytes32 _collection_index, uint256 _item_index)\n           public\n           constant\n           returns (uint256 _item)\n  {\n    _item = uint256(get(self.data[_collection_index], _item_index));\n  }\n\n\n  function append(IndexedUint storage self, bytes32 _collection_index, uint256 _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data[_collection_index], bytes32(_data));\n  }\n\n  function remove(IndexedUint storage self, bytes32 _collection_index, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data[_collection_index], _index);\n  }\n\n  function remove_item(IndexedUint storage self, bytes32 _collection_index, uint256 _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function total(IndexedUint storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data[_collection_index]);\n  }\n\n  function start(IndexedUint storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data[_collection_index]);\n  }\n\n  function start_item(IndexedUint storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _start_item)\n  {\n    _start_item = uint256(start_item(self.data[_collection_index]));\n  }\n\n\n  function end(IndexedUint storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data[_collection_index]);\n  }\n\n  function end_item(IndexedUint storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _end_item)\n  {\n    _end_item = uint256(end_item(self.data[_collection_index]));\n  }\n\n  function valid(IndexedUint storage self, bytes32 _collection_index, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data[_collection_index], _item_index);\n  }\n\n  function valid_item(IndexedUint storage self, bytes32 _collection_index, uint256 _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function previous(IndexedUint storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data[_collection_index], _current_index);\n  }\n\n  function previous_item(IndexedUint storage self, bytes32 _collection_index, uint256 _current_item)\n           public\n           constant\n           returns (uint256 _previous_item)\n  {\n    _previous_item = uint256(previous_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n  function next(IndexedUint storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data[_collection_index], _current_index);\n  }\n\n  function next_item(IndexedUint storage self, bytes32 _collection_index, uint256 _current_item)\n           public\n           constant\n           returns (uint256 _next_item)\n  {\n    _next_item = uint256(next_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n  function append(Address storage self, address _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data, bytes32(_data));\n  }\n\n  function remove(Address storage self, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data, _index);\n  }\n\n\n  function remove_item(Address storage self, address _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data, bytes32(_item));\n  }\n\n  function total(Address storage self)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data);\n  }\n\n  function start(Address storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data);\n  }\n\n  function start_item(Address storage self)\n           public\n           constant\n           returns (address _start_item)\n  {\n    _start_item = address(start_item(self.data));\n  }\n\n\n  function end(Address storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data);\n  }\n\n  function end_item(Address storage self)\n           public\n           constant\n           returns (address _end_item)\n  {\n    _end_item = address(end_item(self.data));\n  }\n\n  function valid(Address storage self, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data, _item_index);\n  }\n\n  function valid_item(Address storage self, address _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data, bytes32(_item));\n  }\n\n  function previous(Address storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data, _current_index);\n  }\n\n  function previous_item(Address storage self, address _current_item)\n           public\n           constant\n           returns (address _previous_item)\n  {\n    _previous_item = address(previous_item(self.data, bytes32(_current_item)));\n  }\n\n  function next(Address storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data, _current_index);\n  }\n\n  function next_item(Address storage self, address _current_item)\n           public\n           constant\n           returns (address _next_item)\n  {\n    _next_item = address(next_item(self.data, bytes32(_current_item)));\n  }\n\n  function append(IndexedAddress storage self, bytes32 _collection_index, address _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data[_collection_index], bytes32(_data));\n  }\n\n  function remove(IndexedAddress storage self, bytes32 _collection_index, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data[_collection_index], _index);\n  }\n\n\n  function remove_item(IndexedAddress storage self, bytes32 _collection_index, address _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function total(IndexedAddress storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data[_collection_index]);\n  }\n\n  function start(IndexedAddress storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data[_collection_index]);\n  }\n\n  function start_item(IndexedAddress storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (address _start_item)\n  {\n    _start_item = address(start_item(self.data[_collection_index]));\n  }\n\n\n  function end(IndexedAddress storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data[_collection_index]);\n  }\n\n  function end_item(IndexedAddress storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (address _end_item)\n  {\n    _end_item = address(end_item(self.data[_collection_index]));\n  }\n\n  function valid(IndexedAddress storage self, bytes32 _collection_index, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data[_collection_index], _item_index);\n  }\n\n  function valid_item(IndexedAddress storage self, bytes32 _collection_index, address _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function previous(IndexedAddress storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data[_collection_index], _current_index);\n  }\n\n  function previous_item(IndexedAddress storage self, bytes32 _collection_index, address _current_item)\n           public\n           constant\n           returns (address _previous_item)\n  {\n    _previous_item = address(previous_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n  function next(IndexedAddress storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data[_collection_index], _current_index);\n  }\n\n  function next_item(IndexedAddress storage self, bytes32 _collection_index, address _current_item)\n           public\n           constant\n           returns (address _next_item)\n  {\n    _next_item = address(next_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n\n  function find(Bytes storage self, bytes32 _item)\n           public\n           constant\n           returns (uint256 _item_index)\n  {\n    _item_index = find(self.data, _item);\n  }\n\n  function get(Bytes storage self, uint256 _item_index)\n           public\n           constant\n           returns (bytes32 _item)\n  {\n    _item = get(self.data, _item_index);\n  }\n\n\n  function append(Bytes storage self, bytes32 _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data, _data);\n  }\n\n  function remove(Bytes storage self, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data, _index);\n  }\n\n\n  function remove_item(Bytes storage self, bytes32 _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data, _item);\n  }\n\n  function total(Bytes storage self)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data);\n  }\n\n  function start(Bytes storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data);\n  }\n\n  function start_item(Bytes storage self)\n           public\n           constant\n           returns (bytes32 _start_item)\n  {\n    _start_item = start_item(self.data);\n  }\n\n\n  function end(Bytes storage self)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data);\n  }\n\n  function end_item(Bytes storage self)\n           public\n           constant\n           returns (bytes32 _end_item)\n  {\n    _end_item = end_item(self.data);\n  }\n\n  function valid(Bytes storage self, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data, _item_index);\n  }\n\n  function valid_item(Bytes storage self, bytes32 _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data, _item);\n  }\n\n  function previous(Bytes storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data, _current_index);\n  }\n\n  function previous_item(Bytes storage self, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _previous_item)\n  {\n    _previous_item = previous_item(self.data, _current_item);\n  }\n\n  function next(Bytes storage self, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data, _current_index);\n  }\n\n  function next_item(Bytes storage self, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _next_item)\n  {\n    _next_item = next_item(self.data, _current_item);\n  }\n\n  function append(IndexedBytes storage self, bytes32 _collection_index, bytes32 _data)\n           public\n           returns (bool _success)\n  {\n    _success = append(self.data[_collection_index], bytes32(_data));\n  }\n\n  function remove(IndexedBytes storage self, bytes32 _collection_index, uint256 _index)\n           internal\n           returns (bool _success)\n  {\n    _success = remove(self.data[_collection_index], _index);\n  }\n\n\n  function remove_item(IndexedBytes storage self, bytes32 _collection_index, bytes32 _item)\n           public\n           returns (bool _success)\n  {\n    _success = remove_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function total(IndexedBytes storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _total_count)\n  {\n    _total_count = total(self.data[_collection_index]);\n  }\n\n  function start(IndexedBytes storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = start(self.data[_collection_index]);\n  }\n\n  function start_item(IndexedBytes storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (bytes32 _start_item)\n  {\n    _start_item = bytes32(start_item(self.data[_collection_index]));\n  }\n\n\n  function end(IndexedBytes storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (uint256 _index)\n  {\n    _index = end(self.data[_collection_index]);\n  }\n\n  function end_item(IndexedBytes storage self, bytes32 _collection_index)\n           public\n           constant\n           returns (bytes32 _end_item)\n  {\n    _end_item = bytes32(end_item(self.data[_collection_index]));\n  }\n\n  function valid(IndexedBytes storage self, bytes32 _collection_index, uint256 _item_index)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid(self.data[_collection_index], _item_index);\n  }\n\n  function valid_item(IndexedBytes storage self, bytes32 _collection_index, bytes32 _item)\n           public\n           constant\n           returns (bool _yes)\n  {\n    _yes = valid_item(self.data[_collection_index], bytes32(_item));\n  }\n\n  function previous(IndexedBytes storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _previous_index)\n  {\n    _previous_index = previous(self.data[_collection_index], _current_index);\n  }\n\n  function previous_item(IndexedBytes storage self, bytes32 _collection_index, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _previous_item)\n  {\n    _previous_item = bytes32(previous_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n  function next(IndexedBytes storage self, bytes32 _collection_index, uint256 _current_index)\n           public\n           constant\n           returns (uint256 _next_index)\n  {\n    _next_index = next(self.data[_collection_index], _current_index);\n  }\n\n  function next_item(IndexedBytes storage self, bytes32 _collection_index, bytes32 _current_item)\n           public\n           constant\n           returns (bytes32 _next_item)\n  {\n    _next_item = bytes32(next_item(self.data[_collection_index], bytes32(_current_item)));\n  }\n\n\n}\n",
  "sourcePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
  "ast": {
    "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
    "exportedSymbols": {
      "DoublyLinkedList": [
        25116
      ]
    },
    "id": 25117,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22559,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:81"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 25116,
        "linearizedBaseContracts": [
          25116
        ],
        "name": "DoublyLinkedList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "DoublyLinkedList.Item",
            "id": 22566,
            "members": [
              {
                "constant": false,
                "id": 22561,
                "name": "item",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "74:12:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 22560,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "74:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22563,
                "name": "previous_index",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "92:22:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22562,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "92:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22565,
                "name": "next_index",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "120:18:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22564,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "120:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Item",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "56:87:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Data",
            "id": 22584,
            "members": [
              {
                "constant": false,
                "id": 22568,
                "name": "first_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "165:19:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22567,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "165:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22570,
                "name": "last_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "190:18:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22569,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "190:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22572,
                "name": "count",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "214:13:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22571,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "214:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22576,
                "name": "item_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "233:38:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 22575,
                  "keyType": {
                    "id": 22573,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "233:27:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 22574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "252:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22580,
                "name": "valid_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "277:38:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                  "typeString": "mapping(uint256 => bool)"
                },
                "typeName": {
                  "id": 22579,
                  "keyType": {
                    "id": 22577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "285:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "277:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                    "typeString": "mapping(uint256 => bool)"
                  },
                  "valueType": {
                    "id": 22578,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "296:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22583,
                "name": "collection",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "321:17:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Item[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 22581,
                    "name": "Item",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22566,
                    "src": "321:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Item_$22566_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Item"
                    }
                  },
                  "id": 22582,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "321:6:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Item[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Data",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "147:196:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedUint",
            "id": 22589,
            "members": [
              {
                "constant": false,
                "id": 22588,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22589,
                "src": "372:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22587,
                  "keyType": {
                    "id": 22585,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "380:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "372:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22586,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "391:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedUint",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "347:59:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedAddress",
            "id": 22594,
            "members": [
              {
                "constant": false,
                "id": 22593,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22594,
                "src": "438:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22592,
                  "keyType": {
                    "id": 22590,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "438:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22591,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "457:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedAddress",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "410:62:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedBytes",
            "id": 22599,
            "members": [
              {
                "constant": false,
                "id": 22598,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22599,
                "src": "502:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22597,
                  "keyType": {
                    "id": 22595,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "510:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "502:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22596,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "521:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedBytes",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "476:60:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Address",
            "id": 22602,
            "members": [
              {
                "constant": false,
                "id": 22601,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22602,
                "src": "561:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22600,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "561:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Address",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "540:35:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Bytes",
            "id": 22605,
            "members": [
              {
                "constant": false,
                "id": 22604,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22605,
                "src": "598:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22603,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "598:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Bytes",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "579:33:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Uint",
            "id": 22608,
            "members": [
              {
                "constant": false,
                "id": 22607,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22608,
                "src": "634:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22606,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "634:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Uint",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "616:32:81",
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 22613,
            "name": "NONE",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "652:34:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 22609,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "652:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 22611,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "684:1:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22610,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "676:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint256_$",
                  "typeString": "type(uint256)"
                },
                "typeName": "uint256"
              },
              "id": 22612,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "676:10:81",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 22618,
            "name": "EMPTY_BYTES",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "690:43:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 22614,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "690:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 22616,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "729:3:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22615,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "721:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 22617,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "721:12:81",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 22623,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "737:44:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 22619,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "737:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 22621,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "777:3:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22620,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "769:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 22622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "769:12:81",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22659,
              "nodeType": "Block",
              "src": "915:162:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22632,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22625,
                                "src": "926:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22633,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "926:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22635,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22634,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22627,
                              "src": "942:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "926:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22636,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "952:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "926:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 22638,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "925:32:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22639,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22625,
                              "src": "962:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22640,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "count",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22572,
                            "src": "962:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22641,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "976:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "962:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 22643,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "961:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "925:56:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22657,
                    "nodeType": "Block",
                    "src": "1022:51:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22650,
                            "name": "_item_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22630,
                            "src": "1030:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22651,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22625,
                                "src": "1044:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22652,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "1044:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22654,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22653,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22627,
                              "src": "1060:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1044:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1030:36:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22656,
                        "nodeType": "ExpressionStatement",
                        "src": "1030:36:81"
                      }
                    ]
                  },
                  "id": 22658,
                  "nodeType": "IfStatement",
                  "src": "921:152:81",
                  "trueBody": {
                    "id": 22649,
                    "nodeType": "Block",
                    "src": "983:33:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22645,
                            "name": "_item_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22630,
                            "src": "991:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22646,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "1005:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "991:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22648,
                        "nodeType": "ExpressionStatement",
                        "src": "991:18:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22625,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "800:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22624,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "800:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22627,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "819:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22626,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "819:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "799:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22631,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22630,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "892:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22629,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "891:21:81"
            },
            "scope": 25116,
            "src": "786:291:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22692,
              "nodeType": "Block",
              "src": "1209:155:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22674,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22669,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22662,
                          "src": "1219:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 22670,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "1219:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 22672,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 22671,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22664,
                        "src": "1238:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1219:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 22673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1254:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1219:39:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22690,
                    "nodeType": "Block",
                    "src": "1326:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22686,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22667,
                            "src": "1334:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22687,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "1342:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1334:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22689,
                        "nodeType": "ExpressionStatement",
                        "src": "1334:19:81"
                      }
                    ]
                  },
                  "id": 22691,
                  "nodeType": "IfStatement",
                  "src": "1215:145:81",
                  "trueBody": {
                    "id": 22685,
                    "nodeType": "Block",
                    "src": "1260:60:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22675,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22667,
                            "src": "1268:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 22676,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22662,
                                  "src": "1276:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 22677,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "1276:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 22681,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 22680,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22678,
                                  "name": "_item_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22664,
                                  "src": "1292:11:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 22679,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1306:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "1292:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1276:32:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 22682,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "item",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22561,
                            "src": "1276:37:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1268:45:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22684,
                        "nodeType": "ExpressionStatement",
                        "src": "1268:45:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22693,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22662,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1094:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22661,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "1094:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22664,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1113:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1113:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1093:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22667,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1192:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1192:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1191:15:81"
            },
            "scope": 25116,
            "src": "1081:283:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22818,
              "nodeType": "Block",
              "src": "1475:750:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 22707,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 22703,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22695,
                            "src": "1490:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 22704,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22697,
                            "src": "1496:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 22702,
                          "name": "find",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            22660,
                            23291,
                            23586,
                            23630,
                            24549
                          ],
                          "referencedDeclaration": 22660,
                          "src": "1485:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                          }
                        },
                        "id": 22705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1485:17:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 22706,
                        "name": "NONE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22613,
                        "src": "1506:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1485:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 22712,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22708,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22697,
                        "src": "1514:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 22710,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1531:2:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            }
                          ],
                          "id": 22709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1523:7:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 22711,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1523:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "1514:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1485:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22816,
                    "nodeType": "Block",
                    "src": "1609:612:81",
                    "statements": [
                      {
                        "assignments": [
                          22720
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22720,
                            "name": "_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 22819,
                            "src": "1617:14:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 22719,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1617:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22733,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 22726,
                                      "name": "_data",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22697,
                                      "src": "1675:5:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22727,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22695,
                                        "src": "1698:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22728,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "last_index",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22570,
                                      "src": "1698:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 22729,
                                      "name": "NONE",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22613,
                                      "src": "1727:4:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22725,
                                    "name": "Item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22566,
                                    "src": "1663:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_struct$_Item_$22566_storage_ptr_$",
                                      "typeString": "type(struct DoublyLinkedList.Item storage pointer)"
                                    }
                                  },
                                  "id": 22730,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "structConstructorCall",
                                  "lValueRequested": false,
                                  "names": [
                                    "item",
                                    "previous_index",
                                    "next_index"
                                  ],
                                  "nodeType": "FunctionCall",
                                  "src": "1663:70:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Item_$22566_memory",
                                    "typeString": "struct DoublyLinkedList.Item memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Item_$22566_memory",
                                    "typeString": "struct DoublyLinkedList.Item memory"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22722,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "1642:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22723,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "collection",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22583,
                                  "src": "1642:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                    "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                  }
                                },
                                "id": 22724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "push",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1642:20:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Item_$22566_storage_$returns$_t_uint256_$",
                                  "typeString": "function (struct DoublyLinkedList.Item storage ref) returns (uint256)"
                                }
                              },
                              "id": 22731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1642:92:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 22721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1634:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 22732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1634:101:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1617:118:81"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22734,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22695,
                              "src": "1747:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22735,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "last_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22570,
                            "src": "1747:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22736,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "1766:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1747:23:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22794,
                          "nodeType": "Block",
                          "src": "1981:131:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22771,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22695,
                                        "src": "1991:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22777,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "1991:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22778,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22776,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22773,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "2007:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22774,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "last_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22570,
                                        "src": "2007:15:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2025:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2007:19:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1991:36:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22779,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "1991:47:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22780,
                                  "name": "_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22720,
                                  "src": "2041:6:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "1991:56:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22782,
                              "nodeType": "ExpressionStatement",
                              "src": "1991:56:81"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22787,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22783,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "2057:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22785,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "last_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22570,
                                  "src": "2057:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22786,
                                  "name": "_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22720,
                                  "src": "2075:6:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2057:24:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22788,
                              "nodeType": "ExpressionStatement",
                              "src": "2057:24:81"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22792,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "2091:12:81",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22789,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "2091:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22791,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "count",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22572,
                                  "src": "2091:10:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22793,
                              "nodeType": "ExpressionStatement",
                              "src": "2091:12:81"
                            }
                          ]
                        },
                        "id": 22795,
                        "nodeType": "IfStatement",
                        "src": "1743:369:81",
                        "trueBody": {
                          "id": 22770,
                          "nodeType": "Block",
                          "src": "1772:203:81",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 22748,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22741,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22738,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1787:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22739,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "first_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22568,
                                        "src": "1787:16:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 22740,
                                        "name": "NONE",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22613,
                                        "src": "1807:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1787:24:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 22742,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1786:26:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "||",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22746,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22743,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1817:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22744,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "count",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22572,
                                        "src": "1817:10:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 22745,
                                        "name": "NONE",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22613,
                                        "src": "1831:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1817:18:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 22747,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1816:20:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "1786:50:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 22768,
                                "nodeType": "Block",
                                "src": "1875:92:81",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22760,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22753,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1887:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22755,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberName": "first_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22568,
                                        "src": "1887:16:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 22759,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 22756,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 22695,
                                            "src": "1906:4:81",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                                            }
                                          },
                                          "id": 22757,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": true,
                                          "memberName": "last_index",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22570,
                                          "src": "1906:15:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "id": 22758,
                                          "name": "_index",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22720,
                                          "src": "1924:6:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "1906:24:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1887:43:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22761,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1887:43:81"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22762,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1942:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22764,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberName": "count",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22572,
                                        "src": "1942:10:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22765,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1955:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "1942:14:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22767,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1942:14:81"
                                  }
                                ]
                              },
                              "id": 22769,
                              "nodeType": "IfStatement",
                              "src": "1782:185:81",
                              "trueBody": {
                                "id": 22752,
                                "nodeType": "Block",
                                "src": "1838:31:81",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 22749,
                                        "name": "revert",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [
                                          26187,
                                          26188
                                        ],
                                        "referencedDeclaration": 26187,
                                        "src": "1850:6:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                          "typeString": "function () pure"
                                        }
                                      },
                                      "id": 22750,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1850:8:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 22751,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1850:8:81"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22796,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22695,
                                "src": "2119:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22799,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "valid_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22580,
                              "src": "2119:18:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                                "typeString": "mapping(uint256 => bool)"
                              }
                            },
                            "id": 22800,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22798,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22720,
                              "src": "2138:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2119:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22801,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2148:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2119:33:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22803,
                        "nodeType": "ExpressionStatement",
                        "src": "2119:33:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22810,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22804,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22695,
                                "src": "2160:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22807,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "2160:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22808,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22806,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22697,
                              "src": "2176:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2160:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22809,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22720,
                            "src": "2185:6:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2160:31:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22811,
                        "nodeType": "ExpressionStatement",
                        "src": "2160:31:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22812,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22700,
                            "src": "2199:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2210:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2199:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22815,
                        "nodeType": "ExpressionStatement",
                        "src": "2199:15:81"
                      }
                    ]
                  },
                  "id": 22817,
                  "nodeType": "IfStatement",
                  "src": "1481:740:81",
                  "trueBody": {
                    "id": 22718,
                    "nodeType": "Block",
                    "src": "1536:67:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22714,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22700,
                            "src": "1580:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22715,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1591:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "1580:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22717,
                        "nodeType": "ExpressionStatement",
                        "src": "1580:16:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22819,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22695,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1384:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22694,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "1384:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22697,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1403:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22696,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1403:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1383:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22700,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1458:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22699,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1458:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1457:15:81"
            },
            "scope": 25116,
            "src": "1368:857:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22936,
              "nodeType": "Block",
              "src": "2337:694:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22828,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22821,
                          "src": "2347:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 22829,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "2347:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 22831,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 22830,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22823,
                        "src": "2366:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2347:26:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 22832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2377:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2347:34:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22934,
                    "nodeType": "Block",
                    "src": "2996:31:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22932,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22930,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22826,
                            "src": "3004:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22931,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3015:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "3004:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22933,
                        "nodeType": "ExpressionStatement",
                        "src": "3004:16:81"
                      }
                    ]
                  },
                  "id": 22935,
                  "nodeType": "IfStatement",
                  "src": "2343:684:81",
                  "trueBody": {
                    "id": 22929,
                    "nodeType": "Block",
                    "src": "2383:607:81",
                    "statements": [
                      {
                        "assignments": [
                          22835
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22835,
                            "name": "item",
                            "nodeType": "VariableDeclaration",
                            "scope": 22937,
                            "src": "2391:16:81",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                              "typeString": "struct DoublyLinkedList.Item"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 22834,
                              "name": "Item",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 22566,
                              "src": "2391:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Item"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22842,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22836,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22821,
                              "src": "2410:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22837,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "collection",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22583,
                            "src": "2410:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                              "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                            }
                          },
                          "id": 22841,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 22840,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 22838,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22823,
                              "src": "2426:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 22839,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2435:1:81",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2426:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2410:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Item_$22566_storage",
                            "typeString": "struct DoublyLinkedList.Item storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2391:46:81"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22843,
                              "name": "item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22835,
                              "src": "2449:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                "typeString": "struct DoublyLinkedList.Item memory"
                              }
                            },
                            "id": 22844,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "previous_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22563,
                            "src": "2449:19:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22845,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "2472:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2449:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22868,
                          "nodeType": "Block",
                          "src": "2537:88:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22866,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22855,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22821,
                                        "src": "2547:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22861,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "2547:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22862,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22860,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22857,
                                          "name": "item",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22835,
                                          "src": "2563:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                            "typeString": "struct DoublyLinkedList.Item memory"
                                          }
                                        },
                                        "id": 22858,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "previous_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22563,
                                        "src": "2563:19:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22859,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2585:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2563:23:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2547:40:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22863,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2547:51:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22864,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2601:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22865,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2601:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2547:69:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22867,
                              "nodeType": "ExpressionStatement",
                              "src": "2547:69:81"
                            }
                          ]
                        },
                        "id": 22869,
                        "nodeType": "IfStatement",
                        "src": "2445:180:81",
                        "trueBody": {
                          "id": 22854,
                          "nodeType": "Block",
                          "src": "2478:53:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22852,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22847,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22821,
                                    "src": "2488:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22849,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "first_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22568,
                                  "src": "2488:16:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22850,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2507:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22851,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2507:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2488:34:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22853,
                              "nodeType": "ExpressionStatement",
                              "src": "2488:34:81"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22873,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22870,
                              "name": "item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22835,
                              "src": "2637:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                "typeString": "struct DoublyLinkedList.Item memory"
                              }
                            },
                            "id": 22871,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "next_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22565,
                            "src": "2637:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22872,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "2656:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2637:23:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22895,
                          "nodeType": "Block",
                          "src": "2724:92:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22893,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22882,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22821,
                                        "src": "2734:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22888,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "2734:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22889,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22887,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22884,
                                          "name": "item",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22835,
                                          "src": "2750:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                            "typeString": "struct DoublyLinkedList.Item memory"
                                          }
                                        },
                                        "id": 22885,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "next_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22565,
                                        "src": "2750:15:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22886,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2768:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2750:19:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2734:36:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22890,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2734:51:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22891,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2788:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22892,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2788:19:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2734:73:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22894,
                              "nodeType": "ExpressionStatement",
                              "src": "2734:73:81"
                            }
                          ]
                        },
                        "id": 22896,
                        "nodeType": "IfStatement",
                        "src": "2633:183:81",
                        "trueBody": {
                          "id": 22881,
                          "nodeType": "Block",
                          "src": "2662:56:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22874,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22821,
                                    "src": "2672:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22876,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "last_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22570,
                                  "src": "2672:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22877,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2690:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22878,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2690:19:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2672:37:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22880,
                              "nodeType": "ExpressionStatement",
                              "src": "2672:37:81"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "2823:34:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22897,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2830:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22898,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "collection",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22583,
                              "src": "2830:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                              }
                            },
                            "id": 22902,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 22901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 22899,
                                "name": "_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22823,
                                "src": "2846:6:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 22900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2855:1:81",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "2846:10:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2830:27:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Item_$22566_storage",
                              "typeString": "struct DoublyLinkedList.Item storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22904,
                        "nodeType": "ExpressionStatement",
                        "src": "2823:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22911,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22905,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2865:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22908,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "valid_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22580,
                              "src": "2865:18:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                                "typeString": "mapping(uint256 => bool)"
                              }
                            },
                            "id": 22909,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22907,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22823,
                              "src": "2884:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2865:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22910,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2894:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "2865:34:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22912,
                        "nodeType": "ExpressionStatement",
                        "src": "2865:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22918,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "2907:33:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22913,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2914:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22914,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "2914:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22917,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22915,
                                "name": "item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22835,
                                "src": "2930:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                  "typeString": "struct DoublyLinkedList.Item memory"
                                }
                              },
                              "id": 22916,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22561,
                              "src": "2930:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2914:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22919,
                        "nodeType": "ExpressionStatement",
                        "src": "2907:33:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "2948:12:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22920,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22821,
                              "src": "2948:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22922,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "count",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22572,
                            "src": "2948:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22924,
                        "nodeType": "ExpressionStatement",
                        "src": "2948:12:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22927,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22925,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22826,
                            "src": "2968:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22926,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2979:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2968:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22928,
                        "nodeType": "ExpressionStatement",
                        "src": "2968:15:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22937,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22821,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2245:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22820,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "2245:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22823,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2264:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22822,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2264:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2244:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22827,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22826,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2320:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22825,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2320:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2319:15:81"
            },
            "scope": 25116,
            "src": "2229:802:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22976,
              "nodeType": "Block",
              "src": "3147:210:81",
              "statements": [
                {
                  "assignments": [
                    22947
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22947,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 22977,
                      "src": "3153:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22946,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3153:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22952,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 22949,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22939,
                        "src": "3180:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22950,
                        "name": "_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22941,
                        "src": "3186:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 22948,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "3175:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 22951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3175:17:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3153:39:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 22955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 22953,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22947,
                      "src": "3202:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 22954,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "3217:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3202:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22972,
                    "nodeType": "Block",
                    "src": "3301:31:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22968,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22944,
                            "src": "3309:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3320:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "3309:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22971,
                        "nodeType": "ExpressionStatement",
                        "src": "3309:16:81"
                      }
                    ]
                  },
                  "id": 22973,
                  "nodeType": "IfStatement",
                  "src": "3198:134:81",
                  "trueBody": {
                    "id": 22967,
                    "nodeType": "Block",
                    "src": "3223:72:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 22958,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22939,
                                  "src": "3246:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 22959,
                                  "name": "_item_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22947,
                                  "src": "3252:11:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 22957,
                                "name": "remove",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  22937,
                                  23349,
                                  23700,
                                  24003,
                                  24266,
                                  24603,
                                  24850
                                ],
                                "referencedDeclaration": 22937,
                                "src": "3239:6:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                                  "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                                }
                              },
                              "id": 22960,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3239:25:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 22956,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              26185,
                              26186
                            ],
                            "referencedDeclaration": 26185,
                            "src": "3231:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 22961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3231:34:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22962,
                        "nodeType": "ExpressionStatement",
                        "src": "3231:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22963,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22944,
                            "src": "3273:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3284:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "3273:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22966,
                        "nodeType": "ExpressionStatement",
                        "src": "3273:15:81"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22974,
                    "name": "_success",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22944,
                    "src": "3344:8:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 22945,
                  "id": 22975,
                  "nodeType": "Return",
                  "src": "3337:15:81"
                }
              ]
            },
            "documentation": null,
            "id": 22977,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22939,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3056:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22938,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3056:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22941,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3075:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22940,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3075:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3055:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22944,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3130:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22943,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3130:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3129:15:81"
            },
            "scope": 25116,
            "src": "3035:322:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22989,
              "nodeType": "Block",
              "src": "3477:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22984,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22982,
                      "src": "3483:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 22985,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22979,
                        "src": "3498:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 22986,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "count",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22572,
                      "src": "3498:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3483:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 22988,
                  "nodeType": "ExpressionStatement",
                  "src": "3483:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 22990,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22979,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22990,
                  "src": "3376:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22978,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3376:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3375:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22982,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22990,
                  "src": "3453:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22981,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3453:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3452:22:81"
            },
            "scope": 25116,
            "src": "3361:152:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23004,
              "nodeType": "Block",
              "src": "3632:65:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22997,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22995,
                      "src": "3638:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 22998,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22992,
                        "src": "3652:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 22999,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "first_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22568,
                      "src": "3652:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3638:30:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23001,
                  "nodeType": "ExpressionStatement",
                  "src": "3638:30:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23002,
                    "name": "_item_index",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22995,
                    "src": "3681:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22996,
                  "id": 23003,
                  "nodeType": "Return",
                  "src": "3674:18:81"
                }
              ]
            },
            "documentation": null,
            "id": 23005,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22992,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23005,
                  "src": "3532:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22991,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3532:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3531:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22995,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23005,
                  "src": "3609:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22994,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3609:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3608:21:81"
            },
            "scope": 25116,
            "src": "3517:180:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23035,
              "nodeType": "Block",
              "src": "3815:159:81",
              "statements": [
                {
                  "assignments": [
                    23013
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23013,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23036,
                      "src": "3821:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23012,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3821:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23017,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23015,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23007,
                        "src": "3849:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      ],
                      "id": 23014,
                      "name": "start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23005,
                        23399,
                        23762,
                        24053,
                        24328,
                        24651,
                        24912
                      ],
                      "referencedDeclaration": 23005,
                      "src": "3843:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 23016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3843:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3821:33:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23018,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23013,
                      "src": "3864:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23019,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "3879:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3864:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23033,
                    "nodeType": "Block",
                    "src": "3936:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23029,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23010,
                            "src": "3944:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23030,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "3952:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3944:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23032,
                        "nodeType": "ExpressionStatement",
                        "src": "3944:19:81"
                      }
                    ]
                  },
                  "id": 23034,
                  "nodeType": "IfStatement",
                  "src": "3860:110:81",
                  "trueBody": {
                    "id": 23028,
                    "nodeType": "Block",
                    "src": "3885:45:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23021,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23010,
                            "src": "3893:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23023,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23007,
                                "src": "3905:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23024,
                                "name": "_item_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23013,
                                "src": "3911:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23022,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "3901:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3901:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3893:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23027,
                        "nodeType": "ExpressionStatement",
                        "src": "3893:30:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23036,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23007,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23036,
                  "src": "3721:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23006,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3721:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3720:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23010,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23036,
                  "src": "3798:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23009,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3798:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3797:15:81"
            },
            "scope": 25116,
            "src": "3701:273:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23050,
              "nodeType": "Block",
              "src": "4091:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23043,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23041,
                      "src": "4097:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23044,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23038,
                        "src": "4111:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 23045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "last_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22570,
                      "src": "4111:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4097:29:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23047,
                  "nodeType": "ExpressionStatement",
                  "src": "4097:29:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23048,
                    "name": "_item_index",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 23041,
                    "src": "4139:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23042,
                  "id": 23049,
                  "nodeType": "Return",
                  "src": "4132:18:81"
                }
              ]
            },
            "documentation": null,
            "id": 23051,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23038,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23051,
                  "src": "3991:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23037,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3991:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3990:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23041,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23051,
                  "src": "4068:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23040,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4068:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4067:21:81"
            },
            "scope": 25116,
            "src": "3978:177:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23081,
              "nodeType": "Block",
              "src": "4271:157:81",
              "statements": [
                {
                  "assignments": [
                    23059
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23059,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23082,
                      "src": "4277:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23058,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4277:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23063,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23061,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23053,
                        "src": "4303:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      ],
                      "id": 23060,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23051,
                        23431,
                        23802,
                        24085,
                        24368,
                        24681,
                        24952
                      ],
                      "referencedDeclaration": 23051,
                      "src": "4299:3:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 23062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4299:9:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4277:31:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23064,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23059,
                      "src": "4318:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23065,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "4333:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4318:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23079,
                    "nodeType": "Block",
                    "src": "4390:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23075,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23056,
                            "src": "4398:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23076,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "4406:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4398:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23078,
                        "nodeType": "ExpressionStatement",
                        "src": "4398:19:81"
                      }
                    ]
                  },
                  "id": 23080,
                  "nodeType": "IfStatement",
                  "src": "4314:110:81",
                  "trueBody": {
                    "id": 23074,
                    "nodeType": "Block",
                    "src": "4339:45:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23067,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23056,
                            "src": "4347:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23069,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23053,
                                "src": "4359:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23070,
                                "name": "_item_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23059,
                                "src": "4365:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23068,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "4355:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23071,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4355:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4347:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23073,
                        "nodeType": "ExpressionStatement",
                        "src": "4347:30:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23082,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23053,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23082,
                  "src": "4177:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23052,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4177:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4176:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23057,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23056,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23082,
                  "src": "4254:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23055,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4254:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4253:15:81"
            },
            "scope": 25116,
            "src": "4159:269:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23098,
              "nodeType": "Block",
              "src": "4558:108:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23091,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23089,
                      "src": "4564:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23092,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23084,
                          "src": "4571:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23093,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "4571:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23095,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23094,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23086,
                        "src": "4590:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4571:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4564:38:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23097,
                  "nodeType": "ExpressionStatement",
                  "src": "4564:38:81"
                }
              ]
            },
            "documentation": null,
            "id": 23099,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23087,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23084,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4447:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23083,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4447:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23086,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4466:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23085,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4466:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4446:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23090,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23089,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4545:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23088,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4545:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4544:11:81"
            },
            "scope": 25116,
            "src": "4432:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23122,
              "nodeType": "Block",
              "src": "4795:99:81",
              "statements": [
                {
                  "assignments": [
                    23109
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23109,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23123,
                      "src": "4801:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23108,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4801:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23114,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23110,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23101,
                        "src": "4823:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 23111,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "item_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22576,
                      "src": "4823:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 23113,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 23112,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23103,
                      "src": "4839:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4823:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4801:44:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23115,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23106,
                      "src": "4851:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23116,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23101,
                          "src": "4858:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23117,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "4858:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23119,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23118,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23109,
                        "src": "4877:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4858:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4851:38:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23121,
                  "nodeType": "ExpressionStatement",
                  "src": "4851:38:81"
                }
              ]
            },
            "documentation": null,
            "id": 23123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23101,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4690:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23100,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4690:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23103,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4709:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23102,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4709:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4689:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23106,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4782:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23105,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4782:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4781:11:81"
            },
            "scope": 25116,
            "src": "4670:224:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23155,
              "nodeType": "Block",
              "src": "5044:184:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23132,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23125,
                          "src": "5054:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23133,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "5054:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23135,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23134,
                        "name": "_current_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23127,
                        "src": "5073:14:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5054:34:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 23136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5092:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5054:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23153,
                    "nodeType": "Block",
                    "src": "5187:37:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23149,
                            "name": "_previous_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23130,
                            "src": "5195:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23150,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "5213:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5195:22:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23152,
                        "nodeType": "ExpressionStatement",
                        "src": "5195:22:81"
                      }
                    ]
                  },
                  "id": 23154,
                  "nodeType": "IfStatement",
                  "src": "5050:174:81",
                  "trueBody": {
                    "id": 23148,
                    "nodeType": "Block",
                    "src": "5098:83:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23138,
                            "name": "_previous_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23130,
                            "src": "5106:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23139,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23125,
                                  "src": "5124:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 23140,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "5124:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 23144,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 23143,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 23141,
                                  "name": "_current_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23127,
                                  "src": "5140:14:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 23142,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5157:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5140:18:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5124:35:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 23145,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "previous_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22563,
                            "src": "5124:50:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5106:68:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23147,
                        "nodeType": "ExpressionStatement",
                        "src": "5106:68:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23125,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "4916:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23124,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4916:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23127,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "4935:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4935:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4915:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23131,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23130,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "5017:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23129,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5017:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5016:25:81"
            },
            "scope": 25116,
            "src": "4898:330:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23196,
              "nodeType": "Block",
              "src": "5381:265:81",
              "statements": [
                {
                  "assignments": [
                    23166
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23166,
                      "name": "_current_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23197,
                      "src": "5387:22:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23165,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5387:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23171,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23168,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23158,
                        "src": "5417:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 23169,
                        "name": "_current_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23160,
                        "src": "5423:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 23167,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "5412:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 23170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5412:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5387:50:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23172,
                      "name": "_current_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23166,
                      "src": "5447:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23173,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "5465:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5447:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23194,
                    "nodeType": "Block",
                    "src": "5599:43:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23190,
                            "name": "_previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23163,
                            "src": "5607:14:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23191,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "5624:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5607:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23193,
                        "nodeType": "ExpressionStatement",
                        "src": "5607:28:81"
                      }
                    ]
                  },
                  "id": 23195,
                  "nodeType": "IfStatement",
                  "src": "5443:199:81",
                  "trueBody": {
                    "id": 23189,
                    "nodeType": "Block",
                    "src": "5471:122:81",
                    "statements": [
                      {
                        "assignments": [
                          23176
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 23176,
                            "name": "_previous_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 23197,
                            "src": "5479:23:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 23175,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5479:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 23181,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23178,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23158,
                              "src": "5514:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23179,
                              "name": "_current_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23166,
                              "src": "5520:14:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23177,
                            "name": "previous",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23156,
                              23504,
                              23891,
                              24158,
                              24457,
                              24750,
                              25041
                            ],
                            "referencedDeclaration": 23156,
                            "src": "5505:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                            }
                          },
                          "id": 23180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5505:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5479:56:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23182,
                            "name": "_previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23163,
                            "src": "5543:14:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23184,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23158,
                                "src": "5564:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23185,
                                "name": "_previous_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23176,
                                "src": "5570:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23183,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "5560:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23186,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5560:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5543:43:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23188,
                        "nodeType": "ExpressionStatement",
                        "src": "5543:43:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23197,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23158,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5255:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23157,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5255:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23160,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5274:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23159,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5274:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5254:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23163,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5355:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23162,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5355:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5354:24:81"
            },
            "scope": 25116,
            "src": "5232:414:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23229,
              "nodeType": "Block",
              "src": "5788:172:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23206,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23199,
                          "src": "5798:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23207,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "5798:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23209,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23208,
                        "name": "_current_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23201,
                        "src": "5817:14:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5798:34:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 23210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5836:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5798:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23227,
                    "nodeType": "Block",
                    "src": "5923:33:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23223,
                            "name": "_next_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23204,
                            "src": "5931:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23224,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "5945:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5931:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23226,
                        "nodeType": "ExpressionStatement",
                        "src": "5931:18:81"
                      }
                    ]
                  },
                  "id": 23228,
                  "nodeType": "IfStatement",
                  "src": "5794:162:81",
                  "trueBody": {
                    "id": 23222,
                    "nodeType": "Block",
                    "src": "5842:75:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23212,
                            "name": "_next_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23204,
                            "src": "5850:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23213,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23199,
                                  "src": "5864:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 23214,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "5864:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 23218,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 23217,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 23215,
                                  "name": "_current_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23201,
                                  "src": "5880:14:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 23216,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5897:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5880:18:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5864:35:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 23219,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "next_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22565,
                            "src": "5864:46:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5850:60:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23221,
                        "nodeType": "ExpressionStatement",
                        "src": "5850:60:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23230,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23199,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5664:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23198,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5664:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23201,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5683:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5683:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5663:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23204,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5765:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5765:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5764:21:81"
            },
            "scope": 25116,
            "src": "5650:310:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23270,
              "nodeType": "Block",
              "src": "6105:245:81",
              "statements": [
                {
                  "assignments": [
                    23240
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23240,
                      "name": "_current_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23271,
                      "src": "6111:22:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23239,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6111:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23245,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23242,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23232,
                        "src": "6141:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 23243,
                        "name": "_current_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23234,
                        "src": "6147:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 23241,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "6136:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 23244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6136:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6111:50:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23246,
                      "name": "_current_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23240,
                      "src": "6171:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23247,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "6189:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23268,
                    "nodeType": "Block",
                    "src": "6307:39:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23264,
                            "name": "_next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23237,
                            "src": "6315:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23265,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "6328:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "6315:24:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23267,
                        "nodeType": "ExpressionStatement",
                        "src": "6315:24:81"
                      }
                    ]
                  },
                  "id": 23269,
                  "nodeType": "IfStatement",
                  "src": "6167:179:81",
                  "trueBody": {
                    "id": 23263,
                    "nodeType": "Block",
                    "src": "6195:106:81",
                    "statements": [
                      {
                        "assignments": [
                          23250
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 23250,
                            "name": "_next_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 23271,
                            "src": "6203:19:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 23249,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "6203:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 23255,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23252,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23232,
                              "src": "6230:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23253,
                              "name": "_current_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23240,
                              "src": "6236:14:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23251,
                            "name": "next",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23230,
                              23544,
                              23939,
                              24198,
                              24505,
                              24786,
                              25089
                            ],
                            "referencedDeclaration": 23230,
                            "src": "6225:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                            }
                          },
                          "id": 23254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6225:26:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6203:48:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23256,
                            "name": "_next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23237,
                            "src": "6259:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23258,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23232,
                                "src": "6276:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23259,
                                "name": "_next_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23250,
                                "src": "6282:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23257,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "6272:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6272:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "6259:35:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23262,
                        "nodeType": "ExpressionStatement",
                        "src": "6259:35:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23271,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23232,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "5983:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23231,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5983:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23234,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "6002:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6002:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5982:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23237,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "6083:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23236,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6083:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6082:20:81"
            },
            "scope": 25116,
            "src": "5964:386:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23290,
              "nodeType": "Block",
              "src": "6483:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23288,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23280,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23278,
                      "src": "6489:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23282,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23273,
                            "src": "6508:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23283,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "6508:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23285,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23275,
                              "src": "6527:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23284,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6519:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23286,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6519:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23281,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "6503:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23287,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6503:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6489:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23289,
                  "nodeType": "ExpressionStatement",
                  "src": "6489:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23291,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23273,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6368:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23272,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6368:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23275,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6387:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23274,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6387:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6367:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23278,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6460:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23277,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6460:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6459:21:81"
            },
            "scope": 25116,
            "src": "6354:185:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23310,
              "nodeType": "Block",
              "src": "6671:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23300,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23298,
                      "src": "6677:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23303,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23293,
                                "src": "6697:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23304,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "6697:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23305,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23295,
                              "src": "6708:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23302,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "6693:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6693:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6685:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6685:36:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6677:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23309,
                  "nodeType": "ExpressionStatement",
                  "src": "6677:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23293,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6556:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23292,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6556:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23295,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6575:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23294,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6575:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6555:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23298,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6654:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23297,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6654:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6653:15:81"
            },
            "scope": 25116,
            "src": "6543:183:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23330,
              "nodeType": "Block",
              "src": "6836:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23320,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23318,
                      "src": "6842:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23322,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23313,
                            "src": "6860:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23323,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "6860:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23325,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23315,
                              "src": "6879:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6871:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6871:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23321,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "6853:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6853:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "6842:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23329,
                  "nodeType": "ExpressionStatement",
                  "src": "6842:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23331,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23313,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6747:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23312,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6747:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23315,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6766:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6766:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6746:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23319,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23318,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6819:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23317,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6819:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6818:15:81"
            },
            "scope": 25116,
            "src": "6731:160:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23348,
              "nodeType": "Block",
              "src": "7003:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23340,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23338,
                      "src": "7009:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23342,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23333,
                            "src": "7027:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23343,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7027:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23344,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23335,
                          "src": "7038:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23341,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "7020:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7020:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7009:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23347,
                  "nodeType": "ExpressionStatement",
                  "src": "7009:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 23349,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23333,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6911:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23332,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6911:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23335,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6930:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23334,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6930:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6910:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23338,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6986:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23337,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6986:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6985:15:81"
            },
            "scope": 25116,
            "src": "6895:155:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23368,
              "nodeType": "Block",
              "src": "7164:60:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23358,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23356,
                      "src": "7170:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23360,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23351,
                            "src": "7193:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23361,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7193:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23363,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23353,
                              "src": "7212:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23362,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "7204:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7204:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23359,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "7181:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23365,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7181:38:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7170:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23367,
                  "nodeType": "ExpressionStatement",
                  "src": "7170:49:81"
                }
              ]
            },
            "documentation": null,
            "id": 23369,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23351,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7075:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23350,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7075:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23353,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7094:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23352,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7094:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7074:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23356,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7147:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23355,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7147:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7146:15:81"
            },
            "scope": 25116,
            "src": "7054:170:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23383,
              "nodeType": "Block",
              "src": "7344:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23376,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23374,
                      "src": "7350:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23378,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23371,
                            "src": "7371:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23379,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7371:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23377,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "7365:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7365:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7350:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23382,
                  "nodeType": "ExpressionStatement",
                  "src": "7350:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 23384,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23372,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23371,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23384,
                  "src": "7243:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23370,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7243:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7242:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23374,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 23384,
                  "src": "7320:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23373,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7320:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7319:22:81"
            },
            "scope": 25116,
            "src": "7228:158:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23398,
              "nodeType": "Block",
              "src": "7500:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23391,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23389,
                      "src": "7506:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23393,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23386,
                            "src": "7521:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23394,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7521:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23392,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "7515:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23395,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7515:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7506:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23397,
                  "nodeType": "ExpressionStatement",
                  "src": "7506:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 23399,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23386,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23399,
                  "src": "7405:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23385,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7405:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7404:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23389,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23399,
                  "src": "7482:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23388,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7482:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7481:16:81"
            },
            "scope": 25116,
            "src": "7390:146:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23415,
              "nodeType": "Block",
              "src": "7660:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23406,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23404,
                      "src": "7666:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23409,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23401,
                                "src": "7699:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23410,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "7699:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23408,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "7688:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23411,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7688:21:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7680:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23412,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7680:30:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7666:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23414,
                  "nodeType": "ExpressionStatement",
                  "src": "7666:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23416,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23401,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23416,
                  "src": "7560:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23400,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7560:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7559:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23404,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23416,
                  "src": "7637:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23403,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7637:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7636:21:81"
            },
            "scope": 25116,
            "src": "7540:175:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23430,
              "nodeType": "Block",
              "src": "7828:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23428,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23423,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23421,
                      "src": "7834:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23425,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23418,
                            "src": "7847:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23426,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7847:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23424,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "7843:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23427,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7843:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7834:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23429,
                  "nodeType": "ExpressionStatement",
                  "src": "7834:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 23431,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23419,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23418,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "7733:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23417,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7733:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7732:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23421,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "7810:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23420,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7810:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7809:16:81"
            },
            "scope": 25116,
            "src": "7720:142:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23447,
              "nodeType": "Block",
              "src": "7982:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23438,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23436,
                      "src": "7988:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23441,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23433,
                                "src": "8017:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23442,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "8017:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23440,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "8008:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8008:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8000:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8000:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7988:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23446,
                  "nodeType": "ExpressionStatement",
                  "src": "7988:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 23448,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23433,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23448,
                  "src": "7884:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23432,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7884:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7883:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23436,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23448,
                  "src": "7961:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23435,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7960:19:81"
            },
            "scope": 25116,
            "src": "7866:167:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23465,
              "nodeType": "Block",
              "src": "8163:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23457,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23455,
                      "src": "8169:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23459,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23450,
                            "src": "8182:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23460,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8182:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23461,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23452,
                          "src": "8193:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23458,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "8176:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 23462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8176:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8169:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23464,
                  "nodeType": "ExpressionStatement",
                  "src": "8169:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 23466,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23450,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8052:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23449,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8052:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23452,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8071:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23451,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8071:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8051:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23456,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23455,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8150:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23454,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8150:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8149:11:81"
            },
            "scope": 25116,
            "src": "8037:173:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23485,
              "nodeType": "Block",
              "src": "8339:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23475,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23473,
                      "src": "8345:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23477,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23468,
                            "src": "8363:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23478,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8363:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23480,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23470,
                              "src": "8382:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23479,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8374:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8374:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23476,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "8352:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 23482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8352:37:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8345:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23484,
                  "nodeType": "ExpressionStatement",
                  "src": "8345:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23486,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23468,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8234:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23467,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8234:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23470,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8253:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23469,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8253:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8233:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23473,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8326:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23472,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8326:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8325:11:81"
            },
            "scope": 25116,
            "src": "8214:180:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23503,
              "nodeType": "Block",
              "src": "8544:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23495,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23493,
                      "src": "8550:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23497,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23488,
                            "src": "8577:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23498,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8577:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23499,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23490,
                          "src": "8588:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23496,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "8568:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23500,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8568:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8550:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23502,
                  "nodeType": "ExpressionStatement",
                  "src": "8550:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 23504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23488,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8416:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23487,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8416:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23490,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8435:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23489,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8435:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8415:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23494,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23493,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8517:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23492,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8517:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8516:25:81"
            },
            "scope": 25116,
            "src": "8398:210:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23525,
              "nodeType": "Block",
              "src": "8761:85:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23523,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23513,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23511,
                      "src": "8767:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23516,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23506,
                                "src": "8806:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23517,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "8806:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23519,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23508,
                                  "src": "8825:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23518,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "8817:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23520,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8817:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23515,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "8792:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23521,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8792:48:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8784:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23522,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8784:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8767:74:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23524,
                  "nodeType": "ExpressionStatement",
                  "src": "8767:74:81"
                }
              ]
            },
            "documentation": null,
            "id": 23526,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23509,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23506,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8635:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23505,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8635:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23508,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8654:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23507,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8654:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8634:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23512,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23511,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8735:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23510,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8735:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8734:24:81"
            },
            "scope": 25116,
            "src": "8612:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23543,
              "nodeType": "Block",
              "src": "8988:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23535,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23533,
                      "src": "8994:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23537,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23528,
                            "src": "9013:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23538,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "9013:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23539,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23530,
                          "src": "9024:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23536,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "9008:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23540,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9008:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8994:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23542,
                  "nodeType": "ExpressionStatement",
                  "src": "8994:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23544,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23528,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8864:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23527,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8864:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23530,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8883:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23529,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8883:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8863:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23533,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8965:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8965:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8964:21:81"
            },
            "scope": 25116,
            "src": "8850:194:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23565,
              "nodeType": "Block",
              "src": "9189:77:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23563,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23553,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23551,
                      "src": "9195:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23556,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23546,
                                "src": "9226:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23557,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "9226:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23559,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23548,
                                  "src": "9245:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23558,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "9237:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23560,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9237:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23555,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "9216:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23561,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9216:44:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23554,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9208:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9208:53:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9195:66:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23564,
                  "nodeType": "ExpressionStatement",
                  "src": "9195:66:81"
                }
              ]
            },
            "documentation": null,
            "id": 23566,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23546,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9067:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23545,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "9067:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23548,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9086:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23547,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9086:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9066:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23551,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9167:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23550,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9167:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9166:20:81"
            },
            "scope": 25116,
            "src": "9048:218:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23585,
              "nodeType": "Block",
              "src": "9402:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23575,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23573,
                      "src": "9408:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23577,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23568,
                            "src": "9427:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23578,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "9427:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23580,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23570,
                              "src": "9446:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 23579,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9438:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23581,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9438:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23576,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "9422:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9422:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9408:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23584,
                  "nodeType": "ExpressionStatement",
                  "src": "9408:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23586,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23568,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9284:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23567,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "9284:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23570,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9306:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23569,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9306:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9283:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23573,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9379:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9379:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9378:21:81"
            },
            "scope": 25116,
            "src": "9270:188:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23605,
              "nodeType": "Block",
              "src": "9593:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23595,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23593,
                      "src": "9599:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23598,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23588,
                                "src": "9619:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 23599,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "9619:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23600,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23590,
                              "src": "9630:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23597,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "9615:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9615:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9607:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 23602,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9607:36:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9599:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 23604,
                  "nodeType": "ExpressionStatement",
                  "src": "9599:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23606,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23588,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9475:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23587,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "9475:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23590,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9497:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23589,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9497:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9474:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23593,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9576:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23592,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9575:15:81"
            },
            "scope": 25116,
            "src": "9462:186:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23629,
              "nodeType": "Block",
              "src": "9816:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23617,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23615,
                      "src": "9822:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23619,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23608,
                              "src": "9841:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23620,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "9841:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23622,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23621,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23610,
                            "src": "9851:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9841:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23624,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23612,
                              "src": "9879:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23623,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9871:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23625,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9871:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23618,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "9836:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9836:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9822:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23628,
                  "nodeType": "ExpressionStatement",
                  "src": "9822:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 23630,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23608,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9667:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23607,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "9667:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23610,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9693:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9693:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23612,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9720:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9720:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9666:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23615,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9793:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23614,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9793:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9792:21:81"
            },
            "scope": 25116,
            "src": "9653:238:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23653,
              "nodeType": "Block",
              "src": "10057:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23641,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23639,
                      "src": "10063:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23644,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23632,
                                  "src": "10083:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23645,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "10083:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23647,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23646,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23634,
                                "src": "10093:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10083:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23648,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23636,
                              "src": "10113:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23643,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "10079:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10079:46:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10071:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23650,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10071:55:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10063:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23652,
                  "nodeType": "ExpressionStatement",
                  "src": "10063:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23654,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23632,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9908:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23631,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "9908:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23634,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9934:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23633,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9934:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23636,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9961:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23635,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9961:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9907:74:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23639,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "10040:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23638,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10040:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10039:15:81"
            },
            "scope": 25116,
            "src": "9895:236:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23677,
              "nodeType": "Block",
              "src": "10275:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23665,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23663,
                      "src": "10281:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23667,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23656,
                              "src": "10299:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23668,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10299:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23670,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23669,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23658,
                            "src": "10309:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10299:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23672,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23660,
                              "src": "10337:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23671,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10329:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10329:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23666,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "10292:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10292:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10281:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23676,
                  "nodeType": "ExpressionStatement",
                  "src": "10281:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23678,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23656,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10152:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23655,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10152:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23658,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10178:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23657,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10178:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23660,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10205:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10205:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10151:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23663,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10258:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23662,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10258:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10257:15:81"
            },
            "scope": 25116,
            "src": "10136:213:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23699,
              "nodeType": "Block",
              "src": "10495:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23689,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23687,
                      "src": "10501:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23691,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23680,
                              "src": "10519:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23692,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10519:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23694,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23693,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23682,
                            "src": "10529:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10519:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23695,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23684,
                          "src": "10549:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23690,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "10512:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10512:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10501:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23698,
                  "nodeType": "ExpressionStatement",
                  "src": "10501:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 23700,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23685,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23680,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10369:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23679,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10369:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23682,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10395:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23681,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10395:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23684,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10422:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10422:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10368:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23688,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23687,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10478:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23686,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10478:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10477:15:81"
            },
            "scope": 25116,
            "src": "10353:208:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23723,
              "nodeType": "Block",
              "src": "10709:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23711,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23709,
                      "src": "10715:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23713,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23702,
                              "src": "10738:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23714,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10738:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23716,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23715,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23704,
                            "src": "10748:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10738:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23718,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23706,
                              "src": "10776:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10768:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23719,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10768:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23712,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "10726:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10726:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10715:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23722,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 23724,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23702,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10586:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23701,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10586:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23704,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10612:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10612:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23706,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10639:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10639:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10585:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23709,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10692:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23708,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10692:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10691:15:81"
            },
            "scope": 25116,
            "src": "10565:223:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23742,
              "nodeType": "Block",
              "src": "10942:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23733,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23731,
                      "src": "10948:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23735,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23726,
                              "src": "10969:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23736,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10969:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23738,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23737,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23728,
                            "src": "10979:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10969:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23734,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "10963:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10963:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10948:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23741,
                  "nodeType": "ExpressionStatement",
                  "src": "10948:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 23743,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23729,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23726,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10807:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23725,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10807:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23728,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10833:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23727,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10833:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10806:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23732,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23731,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10918:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23730,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10918:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10917:22:81"
            },
            "scope": 25116,
            "src": "10792:211:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23761,
              "nodeType": "Block",
              "src": "11151:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23752,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23750,
                      "src": "11157:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23754,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23745,
                              "src": "11172:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23755,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "11172:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23757,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23756,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23747,
                            "src": "11182:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11172:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23753,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "11166:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23758,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11166:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11157:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23760,
                  "nodeType": "ExpressionStatement",
                  "src": "11157:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23762,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23748,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23745,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11022:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23744,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11022:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23747,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11048:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23746,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11048:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11021:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23751,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23750,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11133:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23749,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11133:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11132:16:81"
            },
            "scope": 25116,
            "src": "11007:199:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23782,
              "nodeType": "Block",
              "src": "11364:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23771,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23769,
                      "src": "11370:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23774,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23764,
                                  "src": "11403:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23775,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "11403:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23776,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23766,
                                "src": "11413:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11403:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23773,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "11392:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23778,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11392:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11384:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11384:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11370:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23781,
                  "nodeType": "ExpressionStatement",
                  "src": "11370:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23783,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23764,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11230:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23763,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11230:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23766,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11256:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23765,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11256:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11229:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23770,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23769,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11341:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11341:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11340:21:81"
            },
            "scope": 25116,
            "src": "11210:228:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23801,
              "nodeType": "Block",
              "src": "11585:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23792,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23790,
                      "src": "11591:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23794,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23785,
                              "src": "11604:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23795,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "11604:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23797,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23796,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23787,
                            "src": "11614:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11604:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23793,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "11600:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11600:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11591:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23800,
                  "nodeType": "ExpressionStatement",
                  "src": "11591:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 23802,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23788,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23785,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11456:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23784,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11456:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23787,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11482:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23786,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11482:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11455:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23790,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11567:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23789,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11567:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11566:16:81"
            },
            "scope": 25116,
            "src": "11443:195:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23822,
              "nodeType": "Block",
              "src": "11792:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23811,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23809,
                      "src": "11798:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23814,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23804,
                                  "src": "11827:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23815,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "11827:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23817,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23816,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23806,
                                "src": "11837:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11827:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23813,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "11818:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23818,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11818:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11810:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23819,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11810:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11798:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23821,
                  "nodeType": "ExpressionStatement",
                  "src": "11798:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 23823,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23804,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11660:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23803,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11660:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23806,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11686:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23805,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11686:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11659:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23809,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11771:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23808,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11771:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11770:19:81"
            },
            "scope": 25116,
            "src": "11642:220:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23844,
              "nodeType": "Block",
              "src": "12026:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23834,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23832,
                      "src": "12032:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23836,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23825,
                              "src": "12045:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23837,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12045:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23839,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23838,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23827,
                            "src": "12055:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12045:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23840,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23829,
                          "src": "12075:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23835,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "12039:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 23841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12039:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "12032:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23843,
                  "nodeType": "ExpressionStatement",
                  "src": "12032:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 23845,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23825,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11881:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23824,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11881:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23827,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11907:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23826,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11907:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23829,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11934:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11934:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11880:74:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23832,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "12013:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23831,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "12013:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12012:11:81"
            },
            "scope": 25116,
            "src": "11866:226:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23868,
              "nodeType": "Block",
              "src": "12255:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23856,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23854,
                      "src": "12261:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23858,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23847,
                              "src": "12279:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23859,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12279:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23861,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23860,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23849,
                            "src": "12289:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12279:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23863,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23851,
                              "src": "12317:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23862,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "12309:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23864,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12309:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23857,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "12268:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 23865,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12268:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "12261:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23867,
                  "nodeType": "ExpressionStatement",
                  "src": "12261:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23869,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23847,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12116:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23846,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12116:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23849,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12142:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12142:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23851,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12169:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23850,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12169:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12115:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23855,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23854,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12242:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23853,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "12242:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12241:11:81"
            },
            "scope": 25116,
            "src": "12096:233:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23890,
              "nodeType": "Block",
              "src": "12513:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23880,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23878,
                      "src": "12519:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23882,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23871,
                              "src": "12546:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23883,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12546:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23885,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23884,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23873,
                            "src": "12556:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12546:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23886,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23875,
                          "src": "12576:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23881,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "12537:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12537:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12519:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23889,
                  "nodeType": "ExpressionStatement",
                  "src": "12519:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 23891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23876,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23871,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12351:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23870,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12351:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23873,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12377:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12377:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23875,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12404:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23874,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12404:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12350:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23878,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12486:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23877,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12486:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12485:25:81"
            },
            "scope": 25116,
            "src": "12333:263:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23916,
              "nodeType": "Block",
              "src": "12783:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23902,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23900,
                      "src": "12789:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23905,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23893,
                                  "src": "12828:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23906,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "12828:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23908,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23907,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23895,
                                "src": "12838:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12828:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23910,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23897,
                                  "src": "12866:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23909,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12858:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12858:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23904,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "12814:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12814:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12806:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23913,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12806:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12789:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23915,
                  "nodeType": "ExpressionStatement",
                  "src": "12789:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 23917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23893,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12623:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23892,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12623:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23895,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12649:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23894,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12649:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23897,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12676:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23896,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12676:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12622:76:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23900,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12757:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12757:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12756:24:81"
            },
            "scope": 25116,
            "src": "12600:287:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23938,
              "nodeType": "Block",
              "src": "13063:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23928,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23926,
                      "src": "13069:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23930,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23919,
                              "src": "13088:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23931,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "13088:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23933,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23932,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23921,
                            "src": "13098:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13088:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23934,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23923,
                          "src": "13118:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23929,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "13083:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23935,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13083:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13069:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23937,
                  "nodeType": "ExpressionStatement",
                  "src": "13069:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 23939,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23919,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12905:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23918,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12905:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23921,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12931:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12931:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23923,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12958:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12958:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12904:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23927,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23926,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "13040:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23925,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13040:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13039:21:81"
            },
            "scope": 25116,
            "src": "12891:247:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23964,
              "nodeType": "Block",
              "src": "13317:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23950,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23948,
                      "src": "13323:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23953,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23941,
                                  "src": "13354:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23954,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "13354:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23956,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23955,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23943,
                                "src": "13364:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13354:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23958,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23945,
                                  "src": "13392:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23957,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13384:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23959,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13384:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23952,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "13344:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13344:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23951,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "13336:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23961,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13336:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13323:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23963,
                  "nodeType": "ExpressionStatement",
                  "src": "13323:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 23965,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23941,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13161:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23940,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "13161:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23943,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13187:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23942,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13187:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23945,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13214:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23944,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13214:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:76:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23948,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13295:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23947,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13295:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13294:20:81"
            },
            "scope": 25116,
            "src": "13142:271:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23984,
              "nodeType": "Block",
              "src": "13525:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23974,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23972,
                      "src": "13531:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23976,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23967,
                            "src": "13549:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23977,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13549:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23979,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23969,
                              "src": "13568:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 23978,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "13560:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13560:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23975,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "13542:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23981,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13542:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13531:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23983,
                  "nodeType": "ExpressionStatement",
                  "src": "13531:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23985,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23967,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13433:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23966,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13433:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23969,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13455:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23968,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13455:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13432:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23972,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13508:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23971,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13508:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13507:15:81"
            },
            "scope": 25116,
            "src": "13417:163:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24002,
              "nodeType": "Block",
              "src": "13695:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23994,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23992,
                      "src": "13701:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23996,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23987,
                            "src": "13719:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23997,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13719:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23998,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23989,
                          "src": "13730:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23995,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "13712:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23999,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13712:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13701:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24001,
                  "nodeType": "ExpressionStatement",
                  "src": "13701:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24003,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23990,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23987,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13600:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23986,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13600:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23989,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13622:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13622:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13599:38:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23992,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13678:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23991,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13678:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13677:15:81"
            },
            "scope": 25116,
            "src": "13584:158:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24022,
              "nodeType": "Block",
              "src": "13860:60:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24012,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24010,
                      "src": "13866:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24014,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24005,
                            "src": "13889:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24015,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13889:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24017,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24007,
                              "src": "13908:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24016,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "13900:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24018,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13900:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24013,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "13877:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13877:38:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13866:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24021,
                  "nodeType": "ExpressionStatement",
                  "src": "13866:49:81"
                }
              ]
            },
            "documentation": null,
            "id": 24023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24005,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13768:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24004,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13768:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24007,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13790:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13790:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13767:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24010,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13843:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24009,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13843:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13842:15:81"
            },
            "scope": 25116,
            "src": "13747:173:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24037,
              "nodeType": "Block",
              "src": "14043:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24030,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24028,
                      "src": "14049:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24032,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24025,
                            "src": "14070:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24033,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14070:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24031,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "14064:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14064:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14049:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24036,
                  "nodeType": "ExpressionStatement",
                  "src": "14049:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24038,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24025,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24038,
                  "src": "13939:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24024,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13939:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13938:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24028,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24038,
                  "src": "14019:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14019:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14018:22:81"
            },
            "scope": 25116,
            "src": "13924:161:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24052,
              "nodeType": "Block",
              "src": "14202:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24050,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24045,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24043,
                      "src": "14208:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24047,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24040,
                            "src": "14223:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24048,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14223:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24046,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "14217:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24049,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14217:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14208:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24051,
                  "nodeType": "ExpressionStatement",
                  "src": "14208:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 24053,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24041,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24040,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24053,
                  "src": "14104:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24039,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14104:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14103:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24043,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24053,
                  "src": "14184:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24042,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14184:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14183:16:81"
            },
            "scope": 25116,
            "src": "14089:149:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24069,
              "nodeType": "Block",
              "src": "14365:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24060,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24058,
                      "src": "14371:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24063,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24055,
                                "src": "14404:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24064,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "14404:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24062,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "14393:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14393:21:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "14385:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14385:30:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14371:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24068,
                  "nodeType": "ExpressionStatement",
                  "src": "14371:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24055,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24070,
                  "src": "14262:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24054,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14262:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14261:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24059,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24058,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24070,
                  "src": "14342:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24057,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14342:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14341:21:81"
            },
            "scope": 25116,
            "src": "14242:178:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24084,
              "nodeType": "Block",
              "src": "14536:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24077,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24075,
                      "src": "14542:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24079,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24072,
                            "src": "14555:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24080,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14555:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24078,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "14551:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24081,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14551:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14542:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24083,
                  "nodeType": "ExpressionStatement",
                  "src": "14542:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 24085,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24072,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24085,
                  "src": "14438:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24071,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14437:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24075,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24085,
                  "src": "14518:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24074,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14518:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14517:16:81"
            },
            "scope": 25116,
            "src": "14425:145:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24101,
              "nodeType": "Block",
              "src": "14693:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24092,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24090,
                      "src": "14699:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24095,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24087,
                                "src": "14728:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24096,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "14728:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24094,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "14719:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14719:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "14711:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24098,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14711:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14699:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24100,
                  "nodeType": "ExpressionStatement",
                  "src": "14699:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 24102,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24087,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24102,
                  "src": "14592:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24086,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14592:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14591:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24090,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24102,
                  "src": "14672:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14672:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14671:19:81"
            },
            "scope": 25116,
            "src": "14574:170:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24119,
              "nodeType": "Block",
              "src": "14877:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24111,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24109,
                      "src": "14883:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24113,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24104,
                            "src": "14896:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24114,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14896:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24115,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24106,
                          "src": "14907:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24112,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "14890:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24116,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14890:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14883:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24118,
                  "nodeType": "ExpressionStatement",
                  "src": "14883:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24120,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24104,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14763:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24103,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14763:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24106,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14785:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14785:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14762:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24109,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14864:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24108,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14864:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14863:11:81"
            },
            "scope": 25116,
            "src": "14748:176:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24139,
              "nodeType": "Block",
              "src": "15056:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24129,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24127,
                      "src": "15062:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24131,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24122,
                            "src": "15080:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24132,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15080:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24134,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24124,
                              "src": "15099:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "15091:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24135,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15091:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24130,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "15069:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15069:37:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15062:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24138,
                  "nodeType": "ExpressionStatement",
                  "src": "15062:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24140,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24122,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "14948:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24121,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14948:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24124,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "14970:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14970:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14947:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24127,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "15043:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24126,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15043:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15042:11:81"
            },
            "scope": 25116,
            "src": "14928:183:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24157,
              "nodeType": "Block",
              "src": "15264:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24149,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24147,
                      "src": "15270:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24151,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24142,
                            "src": "15297:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24152,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15297:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24153,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24144,
                          "src": "15308:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24150,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "15288:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15288:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15270:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24156,
                  "nodeType": "ExpressionStatement",
                  "src": "15270:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 24158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24142,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15133:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24141,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15133:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24144,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15155:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24143,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15155:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15132:46:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24147,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15237:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24146,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15237:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15236:25:81"
            },
            "scope": 25116,
            "src": "15115:213:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24179,
              "nodeType": "Block",
              "src": "15484:85:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24167,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24165,
                      "src": "15490:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24170,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24160,
                                "src": "15529:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24171,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "15529:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24173,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24162,
                                  "src": "15548:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24172,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15540:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15540:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24169,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "15515:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24175,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15515:48:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15507:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15507:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15490:74:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24178,
                  "nodeType": "ExpressionStatement",
                  "src": "15490:74:81"
                }
              ]
            },
            "documentation": null,
            "id": 24180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24160,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15355:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24159,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15355:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24162,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15377:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15377:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15354:45:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24166,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24165,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15458:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15458:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15457:24:81"
            },
            "scope": 25116,
            "src": "15332:237:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24197,
              "nodeType": "Block",
              "src": "15714:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24189,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24187,
                      "src": "15720:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24191,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24182,
                            "src": "15739:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24192,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15739:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24193,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24184,
                          "src": "15750:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24190,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "15734:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24194,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15734:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15720:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24196,
                  "nodeType": "ExpressionStatement",
                  "src": "15720:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 24198,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24182,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15587:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24181,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15587:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24184,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15609:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15609:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15586:46:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24187,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15691:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24186,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15691:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15690:21:81"
            },
            "scope": 25116,
            "src": "15573:197:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24219,
              "nodeType": "Block",
              "src": "15918:77:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24207,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24205,
                      "src": "15924:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24210,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24200,
                                "src": "15955:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24211,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "15955:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24213,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24202,
                                  "src": "15974:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24212,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15966:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24214,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15966:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24209,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "15945:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15945:44:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15937:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15937:53:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15924:66:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24218,
                  "nodeType": "ExpressionStatement",
                  "src": "15924:66:81"
                }
              ]
            },
            "documentation": null,
            "id": 24220,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24203,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24200,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15793:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24199,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15793:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24202,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15815:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15815:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15792:45:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24205,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15896:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24204,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15896:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15895:20:81"
            },
            "scope": 25116,
            "src": "15774:221:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24243,
              "nodeType": "Block",
              "src": "16141:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24231,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24229,
                      "src": "16147:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24233,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24222,
                              "src": "16165:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24234,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16165:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24236,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24235,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24224,
                            "src": "16175:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16165:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24238,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24226,
                              "src": "16203:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24237,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16195:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16195:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24232,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "16158:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16158:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16147:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24242,
                  "nodeType": "ExpressionStatement",
                  "src": "16147:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24244,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24222,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16015:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24221,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16015:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24224,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16044:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24223,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16044:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24226,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16071:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16071:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16014:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24229,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16124:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24228,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16124:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16123:15:81"
            },
            "scope": 25116,
            "src": "15999:216:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24265,
              "nodeType": "Block",
              "src": "16364:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24255,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24253,
                      "src": "16370:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24257,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24246,
                              "src": "16388:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24258,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16388:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24260,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24259,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24248,
                            "src": "16398:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16388:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24261,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24250,
                          "src": "16418:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24256,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "16381:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24262,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16381:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16370:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24264,
                  "nodeType": "ExpressionStatement",
                  "src": "16370:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24266,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24246,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16235:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24245,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16235:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24248,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16264:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24247,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16264:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24250,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16291:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24249,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16291:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16234:72:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24253,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16347:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24252,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16347:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16346:15:81"
            },
            "scope": 25116,
            "src": "16219:211:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24289,
              "nodeType": "Block",
              "src": "16582:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24277,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24275,
                      "src": "16588:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24279,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24268,
                              "src": "16611:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24280,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16611:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24282,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24281,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24270,
                            "src": "16621:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16611:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24284,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24272,
                              "src": "16649:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24283,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16641:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16641:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24278,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "16599:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16599:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16588:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24288,
                  "nodeType": "ExpressionStatement",
                  "src": "16588:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 24290,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24268,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16456:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24267,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16456:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24270,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16485:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24269,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16485:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24272,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16512:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24271,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16512:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16455:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24275,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16565:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24274,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16565:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16564:15:81"
            },
            "scope": 25116,
            "src": "16435:226:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24308,
              "nodeType": "Block",
              "src": "16818:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24299,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24297,
                      "src": "16824:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24301,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24292,
                              "src": "16845:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24302,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16845:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24304,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24303,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24294,
                            "src": "16855:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16845:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24300,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "16839:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24305,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16839:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16824:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24307,
                  "nodeType": "ExpressionStatement",
                  "src": "16824:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 24309,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24295,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24292,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16680:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24291,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16680:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24294,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16709:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24293,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16709:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16679:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24297,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16794:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16794:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16793:22:81"
            },
            "scope": 25116,
            "src": "16665:214:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24327,
              "nodeType": "Block",
              "src": "17030:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24318,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24316,
                      "src": "17036:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24320,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24311,
                              "src": "17051:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24321,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17051:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24323,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24322,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24313,
                            "src": "17061:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17051:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24319,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "17045:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24324,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17045:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17036:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24326,
                  "nodeType": "ExpressionStatement",
                  "src": "17036:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24328,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24311,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "16898:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24310,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16898:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24313,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "16927:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24312,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16927:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16897:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24316,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "17012:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24315,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17012:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17011:16:81"
            },
            "scope": 25116,
            "src": "16883:202:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24348,
              "nodeType": "Block",
              "src": "17246:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24337,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24335,
                      "src": "17252:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24340,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24330,
                                  "src": "17285:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24341,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "17285:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24343,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24342,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24332,
                                "src": "17295:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17285:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24339,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "17274:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17274:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17266:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17266:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17252:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24347,
                  "nodeType": "ExpressionStatement",
                  "src": "17252:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24349,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24330,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17109:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24329,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17109:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24332,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17138:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24331,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17138:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17108:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24335,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17223:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17223:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17222:21:81"
            },
            "scope": 25116,
            "src": "17089:231:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24367,
              "nodeType": "Block",
              "src": "17470:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24365,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24358,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24356,
                      "src": "17476:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24360,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24351,
                              "src": "17489:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24361,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17489:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24363,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24362,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24353,
                            "src": "17499:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17489:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24359,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "17485:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24364,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17485:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17476:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24366,
                  "nodeType": "ExpressionStatement",
                  "src": "17476:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 24368,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24351,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17338:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24350,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17338:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24353,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17367:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24352,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17367:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17337:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24356,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17452:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24355,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17452:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17451:16:81"
            },
            "scope": 25116,
            "src": "17325:198:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24388,
              "nodeType": "Block",
              "src": "17680:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24377,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24375,
                      "src": "17686:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24380,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24370,
                                  "src": "17715:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24381,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "17715:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24383,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24382,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24372,
                                "src": "17725:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17715:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24379,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "17706:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24384,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17706:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17698:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17698:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17686:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24387,
                  "nodeType": "ExpressionStatement",
                  "src": "17686:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 24389,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24370,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17545:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24369,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17545:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24372,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17574:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24371,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17574:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17544:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24375,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17659:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24374,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17659:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17658:19:81"
            },
            "scope": 25116,
            "src": "17527:223:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24410,
              "nodeType": "Block",
              "src": "17917:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24400,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24398,
                      "src": "17923:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24402,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24391,
                              "src": "17936:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24403,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17936:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24405,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24404,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24393,
                            "src": "17946:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17936:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24406,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24395,
                          "src": "17966:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24401,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "17930:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24407,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17930:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "17923:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24409,
                  "nodeType": "ExpressionStatement",
                  "src": "17923:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24411,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24396,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24391,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17769:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24390,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17769:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24393,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17798:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24392,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17798:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24395,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17825:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24394,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17825:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17768:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24398,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17904:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24397,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "17904:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17903:11:81"
            },
            "scope": 25116,
            "src": "17754:229:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24434,
              "nodeType": "Block",
              "src": "18149:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24422,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24420,
                      "src": "18155:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24424,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24413,
                              "src": "18173:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24425,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18173:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24427,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24426,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24415,
                            "src": "18183:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18173:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24429,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24417,
                              "src": "18211:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "18203:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18203:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24423,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "18162:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24431,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18162:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "18155:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24433,
                  "nodeType": "ExpressionStatement",
                  "src": "18155:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24435,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24413,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18007:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24412,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18007:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24415,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18036:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18036:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24417,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18063:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24416,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18063:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18006:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24421,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24420,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18136:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24419,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "18136:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18135:11:81"
            },
            "scope": 25116,
            "src": "17987:236:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24456,
              "nodeType": "Block",
              "src": "18410:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24446,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24444,
                      "src": "18416:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24448,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24437,
                              "src": "18443:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24449,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18443:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24451,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24450,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24439,
                            "src": "18453:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18443:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24452,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24441,
                          "src": "18473:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24447,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "18434:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18434:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18416:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24455,
                  "nodeType": "ExpressionStatement",
                  "src": "18416:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 24457,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24437,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18245:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24436,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18245:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24439,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18274:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24438,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18274:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24441,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18301:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24440,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18301:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18244:80:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24444,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18383:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24443,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18383:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18382:25:81"
            },
            "scope": 25116,
            "src": "18227:266:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24482,
              "nodeType": "Block",
              "src": "18683:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24468,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24466,
                      "src": "18689:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24471,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24459,
                                  "src": "18728:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24472,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "18728:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24474,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24473,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24461,
                                "src": "18738:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "18728:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24476,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24463,
                                  "src": "18766:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24475,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "18758:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "18758:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24470,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "18714:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18714:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "18706:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18706:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "18689:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24481,
                  "nodeType": "ExpressionStatement",
                  "src": "18689:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 24483,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24459,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18520:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24458,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18520:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24461,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18549:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24460,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18549:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24463,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18576:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18519:79:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24466,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18657:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24465,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18657:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18656:24:81"
            },
            "scope": 25116,
            "src": "18497:290:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24504,
              "nodeType": "Block",
              "src": "18966:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24494,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24492,
                      "src": "18972:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24496,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24485,
                              "src": "18991:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24497,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18991:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24499,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24498,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24487,
                            "src": "19001:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18991:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24500,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24489,
                          "src": "19021:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24495,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "18986:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24501,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18986:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18972:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24503,
                  "nodeType": "ExpressionStatement",
                  "src": "18972:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 24505,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24485,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18805:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24484,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18805:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24487,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18834:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24486,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18834:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24489,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18861:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24488,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18861:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18804:80:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24492,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18943:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24491,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18943:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18942:21:81"
            },
            "scope": 25116,
            "src": "18791:250:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24530,
              "nodeType": "Block",
              "src": "19223:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24516,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24514,
                      "src": "19229:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24519,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24507,
                                  "src": "19260:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24520,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "19260:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24522,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24521,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24509,
                                "src": "19270:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19260:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24524,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24511,
                                  "src": "19298:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24523,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19290:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24525,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19290:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24518,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "19250:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19250:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24517,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19242:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19242:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19229:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24529,
                  "nodeType": "ExpressionStatement",
                  "src": "19229:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 24531,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24512,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24507,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19064:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24506,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "19064:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24509,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19093:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24508,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19093:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24511,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19120:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24510,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19120:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19063:79:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24514,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19201:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24513,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19201:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19200:20:81"
            },
            "scope": 25116,
            "src": "19045:274:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24548,
              "nodeType": "Block",
              "src": "19454:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24540,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24538,
                      "src": "19460:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24542,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24533,
                            "src": "19479:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24543,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19479:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24544,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24535,
                          "src": "19490:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24541,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "19474:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 24545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19474:22:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "19460:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24547,
                  "nodeType": "ExpressionStatement",
                  "src": "19460:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24549,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24533,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19338:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24532,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19338:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24535,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19358:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24534,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19358:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19337:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24538,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19431:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24537,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19431:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19430:21:81"
            },
            "scope": 25116,
            "src": "19324:177:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24566,
              "nodeType": "Block",
              "src": "19634:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24558,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24556,
                      "src": "19640:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24560,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24551,
                            "src": "19652:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24561,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19652:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24562,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24553,
                          "src": "19663:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24559,
                        "name": "get",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22693,
                          23311,
                          23606,
                          23654,
                          24567
                        ],
                        "referencedDeclaration": 22693,
                        "src": "19648:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                        }
                      },
                      "id": 24563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19648:27:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19640:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24565,
                  "nodeType": "ExpressionStatement",
                  "src": "19640:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24567,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24551,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19518:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24550,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19518:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24553,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19538:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24552,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19538:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19517:41:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24556,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19617:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24555,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19617:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19616:15:81"
            },
            "scope": 25116,
            "src": "19505:175:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24584,
              "nodeType": "Block",
              "src": "19791:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24576,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24574,
                      "src": "19797:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24578,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24569,
                            "src": "19815:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24579,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19815:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24580,
                          "name": "_data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24571,
                          "src": "19826:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24577,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "19808:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19808:24:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19797:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24583,
                  "nodeType": "ExpressionStatement",
                  "src": "19797:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24585,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24569,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19701:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24568,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19701:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24571,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19721:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24570,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19721:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19700:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24575,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24574,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19774:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24573,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19774:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19773:15:81"
            },
            "scope": 25116,
            "src": "19685:152:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24602,
              "nodeType": "Block",
              "src": "19950:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24594,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24592,
                      "src": "19956:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24596,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24587,
                            "src": "19974:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24597,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19974:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24598,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24589,
                          "src": "19985:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24595,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "19967:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19967:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19956:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24601,
                  "nodeType": "ExpressionStatement",
                  "src": "19956:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24603,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24587,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19857:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24586,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19857:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24589,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19877:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24588,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19877:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19856:36:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24593,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24592,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19933:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24591,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19933:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19932:15:81"
            },
            "scope": 25116,
            "src": "19841:156:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24620,
              "nodeType": "Block",
              "src": "20113:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24612,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24610,
                      "src": "20119:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24614,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24605,
                            "src": "20142:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24615,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20142:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24616,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24607,
                          "src": "20153:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24613,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "20130:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20130:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20119:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24619,
                  "nodeType": "ExpressionStatement",
                  "src": "20119:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 24621,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24605,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20023:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24604,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20023:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24607,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20043:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24606,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20043:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20022:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24610,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20096:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24609,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20096:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20095:15:81"
            },
            "scope": 25116,
            "src": "20002:162:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24635,
              "nodeType": "Block",
              "src": "20285:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24628,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24626,
                      "src": "20291:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24630,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24623,
                            "src": "20312:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24631,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20312:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24629,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "20306:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20306:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20291:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24634,
                  "nodeType": "ExpressionStatement",
                  "src": "20291:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24636,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24623,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24636,
                  "src": "20183:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24622,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20183:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20182:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24626,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24636,
                  "src": "20261:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24625,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20261:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20260:22:81"
            },
            "scope": 25116,
            "src": "20168:159:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24650,
              "nodeType": "Block",
              "src": "20442:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24643,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24641,
                      "src": "20448:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24645,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24638,
                            "src": "20463:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24646,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20463:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24644,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "20457:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20457:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20448:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24649,
                  "nodeType": "ExpressionStatement",
                  "src": "20448:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 24651,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24638,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "20346:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24637,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20346:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20345:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24641,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "20424:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20424:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20423:16:81"
            },
            "scope": 25116,
            "src": "20331:147:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24665,
              "nodeType": "Block",
              "src": "20603:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24658,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24656,
                      "src": "20609:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24660,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24653,
                            "src": "20634:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24661,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20634:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24659,
                        "name": "start_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23036,
                          23416,
                          23783,
                          24070,
                          24349,
                          24666,
                          24933
                        ],
                        "referencedDeclaration": 23036,
                        "src": "20623:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 24662,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20623:21:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20609:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24664,
                  "nodeType": "ExpressionStatement",
                  "src": "20609:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24666,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24653,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24666,
                  "src": "20502:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24652,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20502:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20501:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24656,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24666,
                  "src": "20580:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24655,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20580:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20579:21:81"
            },
            "scope": 25116,
            "src": "20482:167:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24680,
              "nodeType": "Block",
              "src": "20763:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24673,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24671,
                      "src": "20769:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24675,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24668,
                            "src": "20782:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20782:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24674,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "20778:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20778:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20769:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24679,
                  "nodeType": "ExpressionStatement",
                  "src": "20769:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 24681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24668,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24681,
                  "src": "20667:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24667,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20667:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20666:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24671,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24681,
                  "src": "20745:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24670,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20745:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20744:16:81"
            },
            "scope": 25116,
            "src": "20654:143:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24695,
              "nodeType": "Block",
              "src": "20918:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24688,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24686,
                      "src": "20924:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24690,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24683,
                            "src": "20945:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24691,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20945:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24689,
                        "name": "end_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23082,
                          23448,
                          23823,
                          24102,
                          24389,
                          24696,
                          24973
                        ],
                        "referencedDeclaration": 23082,
                        "src": "20936:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 24692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20936:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20924:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24694,
                  "nodeType": "ExpressionStatement",
                  "src": "20924:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24696,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24683,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24696,
                  "src": "20819:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24682,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20819:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20818:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24686,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24696,
                  "src": "20897:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24685,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20897:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20896:19:81"
            },
            "scope": 25116,
            "src": "20801:159:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24713,
              "nodeType": "Block",
              "src": "21091:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24705,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24703,
                      "src": "21097:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24707,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24698,
                            "src": "21110:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24708,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21110:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24709,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24700,
                          "src": "21121:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24706,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "21104:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21104:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "21097:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24712,
                  "nodeType": "ExpressionStatement",
                  "src": "21097:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24714,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24698,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "20979:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24697,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20979:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24700,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "20999:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20999:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20978:41:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24704,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24703,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "21078:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24702,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "21078:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21077:11:81"
            },
            "scope": 25116,
            "src": "20964:174:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24731,
              "nodeType": "Block",
              "src": "21268:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24723,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24721,
                      "src": "21274:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24725,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24716,
                            "src": "21292:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24726,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21292:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24727,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24718,
                          "src": "21303:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24724,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "21281:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21281:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "21274:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24730,
                  "nodeType": "ExpressionStatement",
                  "src": "21274:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24732,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24719,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24716,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21162:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24715,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21162:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24718,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21182:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24717,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21182:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21161:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24722,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24721,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21255:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24720,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "21255:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21254:11:81"
            },
            "scope": 25116,
            "src": "21142:172:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24749,
              "nodeType": "Block",
              "src": "21465:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24747,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24741,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24739,
                      "src": "21471:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24743,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24734,
                            "src": "21498:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24744,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21498:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24745,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24736,
                          "src": "21509:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24742,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "21489:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21489:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21471:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24748,
                  "nodeType": "ExpressionStatement",
                  "src": "21471:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 24750,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24734,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21336:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24733,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21336:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24736,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21356:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24735,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21356:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21335:44:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24739,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21438:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21437:25:81"
            },
            "scope": 25116,
            "src": "21318:211:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24767,
              "nodeType": "Block",
              "src": "21683:67:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24759,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24757,
                      "src": "21689:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24761,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24752,
                            "src": "21720:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24762,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21720:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24763,
                          "name": "_current_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24754,
                          "src": "21731:13:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24760,
                        "name": "previous_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23197,
                          23526,
                          23917,
                          24180,
                          24483,
                          24768,
                          25067
                        ],
                        "referencedDeclaration": 23197,
                        "src": "21706:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 24764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21706:39:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21689:56:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24766,
                  "nodeType": "ExpressionStatement",
                  "src": "21689:56:81"
                }
              ]
            },
            "documentation": null,
            "id": 24768,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24752,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21556:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24751,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21556:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24754,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21576:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24753,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21555:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24757,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21657:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24756,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21657:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21656:24:81"
            },
            "scope": 25116,
            "src": "21533:217:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24785,
              "nodeType": "Block",
              "src": "21893:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24777,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24775,
                      "src": "21899:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24779,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24770,
                            "src": "21918:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24780,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21918:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24781,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24772,
                          "src": "21929:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24778,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "21913:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21913:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21899:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24784,
                  "nodeType": "ExpressionStatement",
                  "src": "21899:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 24786,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24773,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24770,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21768:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24769,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21768:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24772,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21788:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24771,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21788:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21767:44:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24776,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24775,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21870:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21870:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21869:21:81"
            },
            "scope": 25116,
            "src": "21754:195:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24803,
              "nodeType": "Block",
              "src": "22095:59:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24795,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24793,
                      "src": "22101:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24797,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24788,
                            "src": "22124:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24798,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "22124:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24799,
                          "name": "_current_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24790,
                          "src": "22135:13:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24796,
                        "name": "next_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23271,
                          23566,
                          23965,
                          24220,
                          24531,
                          24804,
                          25115
                        ],
                        "referencedDeclaration": 23271,
                        "src": "22114:9:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 24800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22114:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "22101:48:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24802,
                  "nodeType": "ExpressionStatement",
                  "src": "22101:48:81"
                }
              ]
            },
            "documentation": null,
            "id": 24804,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24788,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "21972:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24787,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21972:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24790,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "21992:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24789,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21992:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21971:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24794,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24793,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "22073:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22073:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22072:20:81"
            },
            "scope": 25116,
            "src": "21953:201:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24827,
              "nodeType": "Block",
              "src": "22298:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24815,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24813,
                      "src": "22304:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24817,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24806,
                              "src": "22322:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24818,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22322:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24820,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24819,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24808,
                            "src": "22332:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22322:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24822,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24810,
                              "src": "22360:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24821,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "22352:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22352:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24816,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "22315:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24824,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22315:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22304:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24826,
                  "nodeType": "ExpressionStatement",
                  "src": "22304:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24806,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22174:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24805,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22174:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24808,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22201:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24807,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22201:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24810,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22228:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24809,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22228:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22173:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24813,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22281:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24812,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22281:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22280:15:81"
            },
            "scope": 25116,
            "src": "22158:214:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24849,
              "nodeType": "Block",
              "src": "22519:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24839,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24837,
                      "src": "22525:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24841,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24830,
                              "src": "22543:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24842,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22543:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24844,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24843,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24832,
                            "src": "22553:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22543:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24845,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24834,
                          "src": "22573:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24840,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "22536:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22536:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22525:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24848,
                  "nodeType": "ExpressionStatement",
                  "src": "22525:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24850,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24830,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22392:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24829,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22392:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24832,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22419:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24831,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22419:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24834,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22446:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24833,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22446:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22391:70:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24838,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24837,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22502:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24836,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22502:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22501:15:81"
            },
            "scope": 25116,
            "src": "22376:209:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24873,
              "nodeType": "Block",
              "src": "22735:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24861,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24859,
                      "src": "22741:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24863,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24852,
                              "src": "22764:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24864,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22764:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24866,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24865,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24854,
                            "src": "22774:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22764:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24868,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24856,
                              "src": "22802:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "22794:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22794:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24862,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "22752:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24870,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22752:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22741:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24872,
                  "nodeType": "ExpressionStatement",
                  "src": "22741:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 24874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24852,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22611:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24851,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22611:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24854,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22638:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24853,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22638:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24856,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22665:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24855,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22665:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22610:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24859,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22718:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24858,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22718:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22717:15:81"
            },
            "scope": 25116,
            "src": "22590:224:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24892,
              "nodeType": "Block",
              "src": "22969:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24883,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24881,
                      "src": "22975:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24885,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24876,
                              "src": "22996:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24886,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22996:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24888,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24887,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24878,
                            "src": "23006:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22996:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24884,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "22990:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22990:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "22975:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24891,
                  "nodeType": "ExpressionStatement",
                  "src": "22975:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 24893,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24876,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22833:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24875,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22833:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24878,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22860:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24877,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22860:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22832:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24881,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22945:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24880,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22945:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22944:22:81"
            },
            "scope": 25116,
            "src": "22818:212:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24911,
              "nodeType": "Block",
              "src": "23179:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24902,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24900,
                      "src": "23185:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24904,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24895,
                              "src": "23200:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24905,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "23200:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24907,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24906,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24897,
                            "src": "23210:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23200:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24903,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "23194:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23194:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "23185:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24910,
                  "nodeType": "ExpressionStatement",
                  "src": "23185:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24912,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24895,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23049:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24894,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23049:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24897,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23076:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24896,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23076:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23048:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24900,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23161:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23161:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23160:16:81"
            },
            "scope": 25116,
            "src": "23034:200:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24932,
              "nodeType": "Block",
              "src": "23393:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24921,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24919,
                      "src": "23399:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24924,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24914,
                                  "src": "23432:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 24925,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "23432:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24927,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24926,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24916,
                                "src": "23442:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23432:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24923,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "23421:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "23421:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "23413:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 24929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23413:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23399:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24931,
                  "nodeType": "ExpressionStatement",
                  "src": "23399:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24914,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23258:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24913,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23258:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24916,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23285:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24915,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23285:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23257:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24919,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23370:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23370:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23369:21:81"
            },
            "scope": 25116,
            "src": "23238:229:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24951,
              "nodeType": "Block",
              "src": "23615:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24942,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24940,
                      "src": "23621:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24944,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24935,
                              "src": "23634:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24945,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "23634:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24947,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24946,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24937,
                            "src": "23644:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23634:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24943,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "23630:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23630:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "23621:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24950,
                  "nodeType": "ExpressionStatement",
                  "src": "23621:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 24952,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24935,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23485:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24934,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23485:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24937,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23512:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24936,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23512:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23484:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24940,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23597:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23597:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23596:16:81"
            },
            "scope": 25116,
            "src": "23472:196:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24972,
              "nodeType": "Block",
              "src": "23823:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24961,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24959,
                      "src": "23829:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24964,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24954,
                                  "src": "23858:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 24965,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "23858:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24967,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24966,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24956,
                                "src": "23868:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23858:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24963,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "23849:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "23849:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "23841:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 24969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23841:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23829:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24971,
                  "nodeType": "ExpressionStatement",
                  "src": "23829:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 24973,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24957,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24954,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23690:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24953,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23690:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24956,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23717:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23717:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23689:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24959,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23802:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23802:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23801:19:81"
            },
            "scope": 25116,
            "src": "23672:221:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24994,
              "nodeType": "Block",
              "src": "24058:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24984,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24982,
                      "src": "24064:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24986,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24975,
                              "src": "24077:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24987,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24077:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24989,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24988,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24977,
                            "src": "24087:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24077:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24990,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24979,
                          "src": "24107:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24985,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "24071:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24071:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "24064:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24993,
                  "nodeType": "ExpressionStatement",
                  "src": "24064:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24995,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24975,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23912:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24974,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23912:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24977,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23939:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24976,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23939:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24979,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23966:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24978,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23966:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23911:75:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24982,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "24045:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24981,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24045:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24044:11:81"
            },
            "scope": 25116,
            "src": "23897:227:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25018,
              "nodeType": "Block",
              "src": "24288:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25006,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25004,
                      "src": "24294:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25008,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24997,
                              "src": "24312:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25009,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24312:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25011,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25010,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24999,
                            "src": "24322:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24312:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 25013,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25001,
                              "src": "24350:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "24342:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 25014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24342:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25007,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "24301:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 25015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24301:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "24294:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 25017,
                  "nodeType": "ExpressionStatement",
                  "src": "24294:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 25019,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24997,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24148:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24996,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24148:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24999,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24175:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24175:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25001,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24202:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25000,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24202:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24147:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25004,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24275:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25003,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24275:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24274:11:81"
            },
            "scope": 25116,
            "src": "24128:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25040,
              "nodeType": "Block",
              "src": "24547:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25038,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25030,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25028,
                      "src": "24553:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25032,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25021,
                              "src": "24580:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25033,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24580:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25035,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25034,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25023,
                            "src": "24590:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24580:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 25036,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25025,
                          "src": "24610:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 25031,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "24571:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 25037,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24571:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "24553:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25039,
                  "nodeType": "ExpressionStatement",
                  "src": "24553:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 25041,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25021,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24384:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25020,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24384:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25023,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24411:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25022,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24411:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25025,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24438:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24383:78:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25028,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24520:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24520:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24519:25:81"
            },
            "scope": 25116,
            "src": "24366:264:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25066,
              "nodeType": "Block",
              "src": "24818:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25052,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25050,
                      "src": "24824:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 25055,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25043,
                                  "src": "24863:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 25056,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "24863:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 25058,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 25057,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25045,
                                "src": "24873:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "24863:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 25060,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25047,
                                  "src": "24901:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 25059,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "24893:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 25061,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24893:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25054,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "24849:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 25062,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24849:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "24841:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 25063,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24841:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24824:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25065,
                  "nodeType": "ExpressionStatement",
                  "src": "24824:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 25067,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25048,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25043,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24657:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25042,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24657:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25045,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24684:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25044,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24684:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25047,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24711:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25046,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24711:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24656:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25050,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24792:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25049,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24792:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24791:24:81"
            },
            "scope": 25116,
            "src": "24634:288:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25088,
              "nodeType": "Block",
              "src": "25099:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25078,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25076,
                      "src": "25105:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25080,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25069,
                              "src": "25124:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25081,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "25124:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25083,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25082,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25071,
                            "src": "25134:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "25124:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 25084,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25073,
                          "src": "25154:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 25079,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "25119:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 25085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25119:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "25105:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25087,
                  "nodeType": "ExpressionStatement",
                  "src": "25105:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 25089,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25069,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24940:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25068,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24940:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25071,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24967:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24967:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25073,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24994:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25072,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24994:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24939:78:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25077,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25076,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "25076:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25075,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25076:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25075:21:81"
            },
            "scope": 25116,
            "src": "24926:248:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25114,
              "nodeType": "Block",
              "src": "25354:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25100,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25098,
                      "src": "25360:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 25103,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25091,
                                  "src": "25391:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 25104,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "25391:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 25106,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 25105,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25093,
                                "src": "25401:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25391:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 25108,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25095,
                                  "src": "25429:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 25107,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "25421:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 25109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "25421:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25102,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "25381:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 25110,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25381:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "25373:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 25111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25373:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "25360:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25113,
                  "nodeType": "ExpressionStatement",
                  "src": "25360:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 25115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25091,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25197:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25090,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "25197:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25093,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25224:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25092,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25224:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25095,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25251:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25251:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25196:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25098,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25332:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25097,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25332:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25331:20:81"
            },
            "scope": 25116,
            "src": "25178:272:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 25117,
        "src": "26:25428:81"
      }
    ],
    "src": "0:25455:81"
  },
  "legacyAST": {
    "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
    "exportedSymbols": {
      "DoublyLinkedList": [
        25116
      ]
    },
    "id": 25117,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22559,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:81"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 25116,
        "linearizedBaseContracts": [
          25116
        ],
        "name": "DoublyLinkedList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "DoublyLinkedList.Item",
            "id": 22566,
            "members": [
              {
                "constant": false,
                "id": 22561,
                "name": "item",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "74:12:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 22560,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "74:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22563,
                "name": "previous_index",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "92:22:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22562,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "92:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22565,
                "name": "next_index",
                "nodeType": "VariableDeclaration",
                "scope": 22566,
                "src": "120:18:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22564,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "120:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Item",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "56:87:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Data",
            "id": 22584,
            "members": [
              {
                "constant": false,
                "id": 22568,
                "name": "first_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "165:19:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22567,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "165:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22570,
                "name": "last_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "190:18:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22569,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "190:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22572,
                "name": "count",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "214:13:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 22571,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "214:7:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22576,
                "name": "item_index",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "233:38:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 22575,
                  "keyType": {
                    "id": 22573,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "233:27:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 22574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "252:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22580,
                "name": "valid_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "277:38:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                  "typeString": "mapping(uint256 => bool)"
                },
                "typeName": {
                  "id": 22579,
                  "keyType": {
                    "id": 22577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "285:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "277:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                    "typeString": "mapping(uint256 => bool)"
                  },
                  "valueType": {
                    "id": 22578,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "296:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 22583,
                "name": "collection",
                "nodeType": "VariableDeclaration",
                "scope": 22584,
                "src": "321:17:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Item[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 22581,
                    "name": "Item",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22566,
                    "src": "321:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Item_$22566_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Item"
                    }
                  },
                  "id": 22582,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "321:6:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Item[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Data",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "147:196:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedUint",
            "id": 22589,
            "members": [
              {
                "constant": false,
                "id": 22588,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22589,
                "src": "372:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22587,
                  "keyType": {
                    "id": 22585,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "380:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "372:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22586,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "391:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedUint",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "347:59:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedAddress",
            "id": 22594,
            "members": [
              {
                "constant": false,
                "id": 22593,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22594,
                "src": "438:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22592,
                  "keyType": {
                    "id": 22590,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "438:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22591,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "457:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedAddress",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "410:62:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.IndexedBytes",
            "id": 22599,
            "members": [
              {
                "constant": false,
                "id": 22598,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22599,
                "src": "502:29:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                },
                "typeName": {
                  "id": 22597,
                  "keyType": {
                    "id": 22595,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "510:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "502:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 22596,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "521:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndexedBytes",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "476:60:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Address",
            "id": 22602,
            "members": [
              {
                "constant": false,
                "id": 22601,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22602,
                "src": "561:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22600,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "561:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Address",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "540:35:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Bytes",
            "id": 22605,
            "members": [
              {
                "constant": false,
                "id": 22604,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22605,
                "src": "598:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22603,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "598:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Bytes",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "579:33:81",
            "visibility": "public"
          },
          {
            "canonicalName": "DoublyLinkedList.Uint",
            "id": 22608,
            "members": [
              {
                "constant": false,
                "id": 22607,
                "name": "data",
                "nodeType": "VariableDeclaration",
                "scope": 22608,
                "src": "634:9:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Data"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 22606,
                  "name": "Data",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22584,
                  "src": "634:4:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Uint",
            "nodeType": "StructDefinition",
            "scope": 25116,
            "src": "616:32:81",
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 22613,
            "name": "NONE",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "652:34:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 22609,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "652:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 22611,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "684:1:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22610,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "676:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint256_$",
                  "typeString": "type(uint256)"
                },
                "typeName": "uint256"
              },
              "id": 22612,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "676:10:81",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 22618,
            "name": "EMPTY_BYTES",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "690:43:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 22614,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "690:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 22616,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "729:3:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22615,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "721:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 22617,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "721:12:81",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 22623,
            "name": "NULL_ADDRESS",
            "nodeType": "VariableDeclaration",
            "scope": 25116,
            "src": "737:44:81",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 22619,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "737:7:81",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 22621,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "777:3:81",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 22620,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "769:7:81",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_address_$",
                  "typeString": "type(address)"
                },
                "typeName": "address"
              },
              "id": 22622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "769:12:81",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22659,
              "nodeType": "Block",
              "src": "915:162:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22644,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22632,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22625,
                                "src": "926:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22633,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "926:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22635,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22634,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22627,
                              "src": "942:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "926:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22636,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "952:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "926:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 22638,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "925:32:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22639,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22625,
                              "src": "962:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22640,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "count",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22572,
                            "src": "962:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22641,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "976:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "962:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 22643,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "961:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "925:56:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22657,
                    "nodeType": "Block",
                    "src": "1022:51:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22650,
                            "name": "_item_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22630,
                            "src": "1030:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22651,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22625,
                                "src": "1044:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22652,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "1044:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22654,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22653,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22627,
                              "src": "1060:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1044:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1030:36:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22656,
                        "nodeType": "ExpressionStatement",
                        "src": "1030:36:81"
                      }
                    ]
                  },
                  "id": 22658,
                  "nodeType": "IfStatement",
                  "src": "921:152:81",
                  "trueBody": {
                    "id": 22649,
                    "nodeType": "Block",
                    "src": "983:33:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22645,
                            "name": "_item_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22630,
                            "src": "991:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22646,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "1005:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "991:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22648,
                        "nodeType": "ExpressionStatement",
                        "src": "991:18:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22625,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "800:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22624,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "800:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22627,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "819:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22626,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "819:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "799:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22631,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22630,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22660,
                  "src": "892:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22629,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "891:21:81"
            },
            "scope": 25116,
            "src": "786:291:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22692,
              "nodeType": "Block",
              "src": "1209:155:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22674,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22669,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22662,
                          "src": "1219:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 22670,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "1219:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 22672,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 22671,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22664,
                        "src": "1238:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1219:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 22673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1254:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1219:39:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22690,
                    "nodeType": "Block",
                    "src": "1326:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22686,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22667,
                            "src": "1334:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22687,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "1342:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1334:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22689,
                        "nodeType": "ExpressionStatement",
                        "src": "1334:19:81"
                      }
                    ]
                  },
                  "id": 22691,
                  "nodeType": "IfStatement",
                  "src": "1215:145:81",
                  "trueBody": {
                    "id": 22685,
                    "nodeType": "Block",
                    "src": "1260:60:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22675,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22667,
                            "src": "1268:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 22676,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22662,
                                  "src": "1276:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 22677,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "1276:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 22681,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 22680,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22678,
                                  "name": "_item_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22664,
                                  "src": "1292:11:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 22679,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1306:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "1292:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1276:32:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 22682,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "item",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22561,
                            "src": "1276:37:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1268:45:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22684,
                        "nodeType": "ExpressionStatement",
                        "src": "1268:45:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22693,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22665,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22662,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1094:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22661,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "1094:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22664,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1113:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1113:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1093:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22667,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22693,
                  "src": "1192:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1192:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1191:15:81"
            },
            "scope": 25116,
            "src": "1081:283:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 22818,
              "nodeType": "Block",
              "src": "1475:750:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22713,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 22707,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 22703,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22695,
                            "src": "1490:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 22704,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22697,
                            "src": "1496:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 22702,
                          "name": "find",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            22660,
                            23291,
                            23586,
                            23630,
                            24549
                          ],
                          "referencedDeclaration": 22660,
                          "src": "1485:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                          }
                        },
                        "id": 22705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1485:17:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 22706,
                        "name": "NONE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22613,
                        "src": "1506:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1485:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 22712,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22708,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22697,
                        "src": "1514:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 22710,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1531:2:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            }
                          ],
                          "id": 22709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1523:7:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 22711,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1523:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "1514:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1485:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22816,
                    "nodeType": "Block",
                    "src": "1609:612:81",
                    "statements": [
                      {
                        "assignments": [
                          22720
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22720,
                            "name": "_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 22819,
                            "src": "1617:14:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 22719,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1617:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22733,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 22726,
                                      "name": "_data",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22697,
                                      "src": "1675:5:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22727,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22695,
                                        "src": "1698:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22728,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "last_index",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22570,
                                      "src": "1698:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 22729,
                                      "name": "NONE",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22613,
                                      "src": "1727:4:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22725,
                                    "name": "Item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22566,
                                    "src": "1663:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_struct$_Item_$22566_storage_ptr_$",
                                      "typeString": "type(struct DoublyLinkedList.Item storage pointer)"
                                    }
                                  },
                                  "id": 22730,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "structConstructorCall",
                                  "lValueRequested": false,
                                  "names": [
                                    "item",
                                    "previous_index",
                                    "next_index"
                                  ],
                                  "nodeType": "FunctionCall",
                                  "src": "1663:70:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Item_$22566_memory",
                                    "typeString": "struct DoublyLinkedList.Item memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Item_$22566_memory",
                                    "typeString": "struct DoublyLinkedList.Item memory"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22722,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "1642:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22723,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "collection",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22583,
                                  "src": "1642:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                    "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                  }
                                },
                                "id": 22724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "push",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1642:20:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Item_$22566_storage_$returns$_t_uint256_$",
                                  "typeString": "function (struct DoublyLinkedList.Item storage ref) returns (uint256)"
                                }
                              },
                              "id": 22731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1642:92:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 22721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1634:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 22732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1634:101:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1617:118:81"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22734,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22695,
                              "src": "1747:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22735,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "last_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22570,
                            "src": "1747:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22736,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "1766:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1747:23:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22794,
                          "nodeType": "Block",
                          "src": "1981:131:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22771,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22695,
                                        "src": "1991:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22777,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "1991:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22778,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22776,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22773,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "2007:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22774,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "last_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22570,
                                        "src": "2007:15:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2025:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2007:19:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1991:36:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22779,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "1991:47:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22780,
                                  "name": "_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22720,
                                  "src": "2041:6:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "1991:56:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22782,
                              "nodeType": "ExpressionStatement",
                              "src": "1991:56:81"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22787,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22783,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "2057:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22785,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "last_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22570,
                                  "src": "2057:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22786,
                                  "name": "_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22720,
                                  "src": "2075:6:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2057:24:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22788,
                              "nodeType": "ExpressionStatement",
                              "src": "2057:24:81"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22792,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "2091:12:81",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22789,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22695,
                                    "src": "2091:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22791,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "count",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22572,
                                  "src": "2091:10:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22793,
                              "nodeType": "ExpressionStatement",
                              "src": "2091:12:81"
                            }
                          ]
                        },
                        "id": 22795,
                        "nodeType": "IfStatement",
                        "src": "1743:369:81",
                        "trueBody": {
                          "id": 22770,
                          "nodeType": "Block",
                          "src": "1772:203:81",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 22748,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22741,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22738,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1787:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22739,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "first_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22568,
                                        "src": "1787:16:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 22740,
                                        "name": "NONE",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22613,
                                        "src": "1807:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1787:24:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 22742,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1786:26:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "||",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22746,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22743,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1817:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22744,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "count",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22572,
                                        "src": "1817:10:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 22745,
                                        "name": "NONE",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22613,
                                        "src": "1831:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1817:18:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    }
                                  ],
                                  "id": 22747,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1816:20:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "1786:50:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 22768,
                                "nodeType": "Block",
                                "src": "1875:92:81",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22760,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22753,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1887:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22755,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberName": "first_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22568,
                                        "src": "1887:16:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 22759,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 22756,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 22695,
                                            "src": "1906:4:81",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                              "typeString": "struct DoublyLinkedList.Data storage pointer"
                                            }
                                          },
                                          "id": 22757,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": true,
                                          "memberName": "last_index",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22570,
                                          "src": "1906:15:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "id": 22758,
                                          "name": "_index",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22720,
                                          "src": "1924:6:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "1906:24:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "1887:43:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22761,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1887:43:81"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22766,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22762,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22695,
                                          "src": "1942:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                                          }
                                        },
                                        "id": 22764,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "memberName": "count",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22572,
                                        "src": "1942:10:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22765,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1955:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "1942:14:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22767,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1942:14:81"
                                  }
                                ]
                              },
                              "id": 22769,
                              "nodeType": "IfStatement",
                              "src": "1782:185:81",
                              "trueBody": {
                                "id": 22752,
                                "nodeType": "Block",
                                "src": "1838:31:81",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 22749,
                                        "name": "revert",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [
                                          26187,
                                          26188
                                        ],
                                        "referencedDeclaration": 26187,
                                        "src": "1850:6:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                          "typeString": "function () pure"
                                        }
                                      },
                                      "id": 22750,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "1850:8:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 22751,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1850:8:81"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22796,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22695,
                                "src": "2119:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22799,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "valid_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22580,
                              "src": "2119:18:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                                "typeString": "mapping(uint256 => bool)"
                              }
                            },
                            "id": 22800,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22798,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22720,
                              "src": "2138:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2119:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22801,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2148:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2119:33:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22803,
                        "nodeType": "ExpressionStatement",
                        "src": "2119:33:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22810,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22804,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22695,
                                "src": "2160:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22807,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "2160:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22808,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22806,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22697,
                              "src": "2176:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2160:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22809,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22720,
                            "src": "2185:6:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2160:31:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22811,
                        "nodeType": "ExpressionStatement",
                        "src": "2160:31:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22812,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22700,
                            "src": "2199:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2210:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2199:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22815,
                        "nodeType": "ExpressionStatement",
                        "src": "2199:15:81"
                      }
                    ]
                  },
                  "id": 22817,
                  "nodeType": "IfStatement",
                  "src": "1481:740:81",
                  "trueBody": {
                    "id": 22718,
                    "nodeType": "Block",
                    "src": "1536:67:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22714,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22700,
                            "src": "1580:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22715,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1591:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "1580:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22717,
                        "nodeType": "ExpressionStatement",
                        "src": "1580:16:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22819,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22695,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1384:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22694,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "1384:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22697,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1403:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22696,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1403:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1383:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22700,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22819,
                  "src": "1458:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22699,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1458:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1457:15:81"
            },
            "scope": 25116,
            "src": "1368:857:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22936,
              "nodeType": "Block",
              "src": "2337:694:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 22828,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22821,
                          "src": "2347:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 22829,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "2347:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 22831,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 22830,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22823,
                        "src": "2366:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2347:26:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 22832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2377:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2347:34:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22934,
                    "nodeType": "Block",
                    "src": "2996:31:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22932,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22930,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22826,
                            "src": "3004:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22931,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3015:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "3004:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22933,
                        "nodeType": "ExpressionStatement",
                        "src": "3004:16:81"
                      }
                    ]
                  },
                  "id": 22935,
                  "nodeType": "IfStatement",
                  "src": "2343:684:81",
                  "trueBody": {
                    "id": 22929,
                    "nodeType": "Block",
                    "src": "2383:607:81",
                    "statements": [
                      {
                        "assignments": [
                          22835
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22835,
                            "name": "item",
                            "nodeType": "VariableDeclaration",
                            "scope": 22937,
                            "src": "2391:16:81",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                              "typeString": "struct DoublyLinkedList.Item"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 22834,
                              "name": "Item",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 22566,
                              "src": "2391:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Item"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22842,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22836,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22821,
                              "src": "2410:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22837,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "collection",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22583,
                            "src": "2410:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                              "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                            }
                          },
                          "id": 22841,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 22840,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 22838,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22823,
                              "src": "2426:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 22839,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2435:1:81",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2426:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2410:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Item_$22566_storage",
                            "typeString": "struct DoublyLinkedList.Item storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2391:46:81"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22843,
                              "name": "item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22835,
                              "src": "2449:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                "typeString": "struct DoublyLinkedList.Item memory"
                              }
                            },
                            "id": 22844,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "previous_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22563,
                            "src": "2449:19:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22845,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "2472:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2449:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22868,
                          "nodeType": "Block",
                          "src": "2537:88:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22866,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22855,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22821,
                                        "src": "2547:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22861,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "2547:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22862,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22860,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22857,
                                          "name": "item",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22835,
                                          "src": "2563:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                            "typeString": "struct DoublyLinkedList.Item memory"
                                          }
                                        },
                                        "id": 22858,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "previous_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22563,
                                        "src": "2563:19:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22859,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2585:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2563:23:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2547:40:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22863,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2547:51:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22864,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2601:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22865,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2601:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2547:69:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22867,
                              "nodeType": "ExpressionStatement",
                              "src": "2547:69:81"
                            }
                          ]
                        },
                        "id": 22869,
                        "nodeType": "IfStatement",
                        "src": "2445:180:81",
                        "trueBody": {
                          "id": 22854,
                          "nodeType": "Block",
                          "src": "2478:53:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22852,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22847,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22821,
                                    "src": "2488:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22849,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "first_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22568,
                                  "src": "2488:16:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22850,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2507:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22851,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "next_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22565,
                                  "src": "2507:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2488:34:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22853,
                              "nodeType": "ExpressionStatement",
                              "src": "2488:34:81"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22873,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22870,
                              "name": "item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22835,
                              "src": "2637:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                "typeString": "struct DoublyLinkedList.Item memory"
                              }
                            },
                            "id": 22871,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "next_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22565,
                            "src": "2637:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22872,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "2656:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2637:23:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 22895,
                          "nodeType": "Block",
                          "src": "2724:92:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22893,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 22882,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22821,
                                        "src": "2734:4:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                                        }
                                      },
                                      "id": 22888,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "collection",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22583,
                                      "src": "2734:15:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                        "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                      }
                                    },
                                    "id": 22889,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 22887,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 22884,
                                          "name": "item",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22835,
                                          "src": "2750:4:81",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                            "typeString": "struct DoublyLinkedList.Item memory"
                                          }
                                        },
                                        "id": 22885,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "next_index",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 22565,
                                        "src": "2750:15:81",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 22886,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2768:1:81",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "2750:19:81",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2734:36:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_storage",
                                      "typeString": "struct DoublyLinkedList.Item storage ref"
                                    }
                                  },
                                  "id": 22890,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2734:51:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22891,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2788:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22892,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2788:19:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2734:73:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22894,
                              "nodeType": "ExpressionStatement",
                              "src": "2734:73:81"
                            }
                          ]
                        },
                        "id": 22896,
                        "nodeType": "IfStatement",
                        "src": "2633:183:81",
                        "trueBody": {
                          "id": 22881,
                          "nodeType": "Block",
                          "src": "2662:56:81",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22874,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22821,
                                    "src": "2672:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                      "typeString": "struct DoublyLinkedList.Data storage pointer"
                                    }
                                  },
                                  "id": 22876,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "last_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22570,
                                  "src": "2672:15:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 22877,
                                    "name": "item",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22835,
                                    "src": "2690:4:81",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                      "typeString": "struct DoublyLinkedList.Item memory"
                                    }
                                  },
                                  "id": 22878,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "previous_index",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22563,
                                  "src": "2690:19:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2672:37:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22880,
                              "nodeType": "ExpressionStatement",
                              "src": "2672:37:81"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "2823:34:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22897,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2830:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22898,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "collection",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22583,
                              "src": "2830:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                              }
                            },
                            "id": 22902,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 22901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 22899,
                                "name": "_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22823,
                                "src": "2846:6:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 22900,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2855:1:81",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "2846:10:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2830:27:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Item_$22566_storage",
                              "typeString": "struct DoublyLinkedList.Item storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22904,
                        "nodeType": "ExpressionStatement",
                        "src": "2823:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22911,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22905,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2865:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22908,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "valid_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22580,
                              "src": "2865:18:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                                "typeString": "mapping(uint256 => bool)"
                              }
                            },
                            "id": 22909,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 22907,
                              "name": "_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22823,
                              "src": "2884:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2865:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22910,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2894:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "2865:34:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22912,
                        "nodeType": "ExpressionStatement",
                        "src": "2865:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22918,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "2907:33:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22913,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22821,
                                "src": "2914:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              "id": 22914,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item_index",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22576,
                              "src": "2914:15:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 22917,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 22915,
                                "name": "item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22835,
                                "src": "2930:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Item_$22566_memory_ptr",
                                  "typeString": "struct DoublyLinkedList.Item memory"
                                }
                              },
                              "id": 22916,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "item",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22561,
                              "src": "2930:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2914:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22919,
                        "nodeType": "ExpressionStatement",
                        "src": "2907:33:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "2948:12:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 22920,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22821,
                              "src": "2948:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            "id": 22922,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "count",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22572,
                            "src": "2948:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 22924,
                        "nodeType": "ExpressionStatement",
                        "src": "2948:12:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22927,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22925,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22826,
                            "src": "2968:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22926,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2979:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "2968:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22928,
                        "nodeType": "ExpressionStatement",
                        "src": "2968:15:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 22937,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22821,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2245:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22820,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "2245:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22823,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2264:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22822,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2264:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2244:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22827,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22826,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22937,
                  "src": "2320:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22825,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2320:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2319:15:81"
            },
            "scope": 25116,
            "src": "2229:802:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22976,
              "nodeType": "Block",
              "src": "3147:210:81",
              "statements": [
                {
                  "assignments": [
                    22947
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22947,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 22977,
                      "src": "3153:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22946,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3153:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22952,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 22949,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22939,
                        "src": "3180:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 22950,
                        "name": "_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22941,
                        "src": "3186:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 22948,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "3175:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 22951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3175:17:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3153:39:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 22955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 22953,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22947,
                      "src": "3202:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 22954,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "3217:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3202:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22972,
                    "nodeType": "Block",
                    "src": "3301:31:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22968,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22944,
                            "src": "3309:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 22969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3320:5:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "3309:16:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22971,
                        "nodeType": "ExpressionStatement",
                        "src": "3309:16:81"
                      }
                    ]
                  },
                  "id": 22973,
                  "nodeType": "IfStatement",
                  "src": "3198:134:81",
                  "trueBody": {
                    "id": 22967,
                    "nodeType": "Block",
                    "src": "3223:72:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 22958,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22939,
                                  "src": "3246:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 22959,
                                  "name": "_item_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22947,
                                  "src": "3252:11:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 22957,
                                "name": "remove",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  22937,
                                  23349,
                                  23700,
                                  24003,
                                  24266,
                                  24603,
                                  24850
                                ],
                                "referencedDeclaration": 22937,
                                "src": "3239:6:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                                  "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                                }
                              },
                              "id": 22960,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3239:25:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 22956,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              26185,
                              26186
                            ],
                            "referencedDeclaration": 26185,
                            "src": "3231:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 22961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3231:34:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 22962,
                        "nodeType": "ExpressionStatement",
                        "src": "3231:34:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22963,
                            "name": "_success",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22944,
                            "src": "3273:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 22964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3284:4:81",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "3273:15:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22966,
                        "nodeType": "ExpressionStatement",
                        "src": "3273:15:81"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22974,
                    "name": "_success",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22944,
                    "src": "3344:8:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 22945,
                  "id": 22975,
                  "nodeType": "Return",
                  "src": "3337:15:81"
                }
              ]
            },
            "documentation": null,
            "id": 22977,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22939,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3056:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22938,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3056:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22941,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3075:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22940,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3075:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3055:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22944,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 22977,
                  "src": "3130:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22943,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3130:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3129:15:81"
            },
            "scope": 25116,
            "src": "3035:322:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22989,
              "nodeType": "Block",
              "src": "3477:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22984,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22982,
                      "src": "3483:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 22985,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22979,
                        "src": "3498:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 22986,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "count",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22572,
                      "src": "3498:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3483:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 22988,
                  "nodeType": "ExpressionStatement",
                  "src": "3483:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 22990,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22979,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 22990,
                  "src": "3376:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22978,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3376:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3375:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22982,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22990,
                  "src": "3453:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22981,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3453:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3452:22:81"
            },
            "scope": 25116,
            "src": "3361:152:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23004,
              "nodeType": "Block",
              "src": "3632:65:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22997,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22995,
                      "src": "3638:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 22998,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22992,
                        "src": "3652:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 22999,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "first_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22568,
                      "src": "3652:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3638:30:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23001,
                  "nodeType": "ExpressionStatement",
                  "src": "3638:30:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23002,
                    "name": "_item_index",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22995,
                    "src": "3681:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 22996,
                  "id": 23003,
                  "nodeType": "Return",
                  "src": "3674:18:81"
                }
              ]
            },
            "documentation": null,
            "id": 23005,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22992,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23005,
                  "src": "3532:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 22991,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3532:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3531:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 22996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22995,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23005,
                  "src": "3609:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22994,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3609:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3608:21:81"
            },
            "scope": 25116,
            "src": "3517:180:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23035,
              "nodeType": "Block",
              "src": "3815:159:81",
              "statements": [
                {
                  "assignments": [
                    23013
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23013,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23036,
                      "src": "3821:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23012,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3821:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23017,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23015,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23007,
                        "src": "3849:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      ],
                      "id": 23014,
                      "name": "start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23005,
                        23399,
                        23762,
                        24053,
                        24328,
                        24651,
                        24912
                      ],
                      "referencedDeclaration": 23005,
                      "src": "3843:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 23016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3843:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3821:33:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23018,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23013,
                      "src": "3864:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23019,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "3879:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3864:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23033,
                    "nodeType": "Block",
                    "src": "3936:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23029,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23010,
                            "src": "3944:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23030,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "3952:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3944:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23032,
                        "nodeType": "ExpressionStatement",
                        "src": "3944:19:81"
                      }
                    ]
                  },
                  "id": 23034,
                  "nodeType": "IfStatement",
                  "src": "3860:110:81",
                  "trueBody": {
                    "id": 23028,
                    "nodeType": "Block",
                    "src": "3885:45:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23021,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23010,
                            "src": "3893:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23023,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23007,
                                "src": "3905:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23024,
                                "name": "_item_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23013,
                                "src": "3911:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23022,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "3901:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3901:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3893:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23027,
                        "nodeType": "ExpressionStatement",
                        "src": "3893:30:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23036,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23007,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23036,
                  "src": "3721:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23006,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3721:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3720:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23010,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23036,
                  "src": "3798:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23009,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3798:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3797:15:81"
            },
            "scope": 25116,
            "src": "3701:273:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23050,
              "nodeType": "Block",
              "src": "4091:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23046,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23043,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23041,
                      "src": "4097:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23044,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23038,
                        "src": "4111:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 23045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "last_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22570,
                      "src": "4111:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4097:29:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23047,
                  "nodeType": "ExpressionStatement",
                  "src": "4097:29:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23048,
                    "name": "_item_index",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 23041,
                    "src": "4139:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23042,
                  "id": 23049,
                  "nodeType": "Return",
                  "src": "4132:18:81"
                }
              ]
            },
            "documentation": null,
            "id": 23051,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23038,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23051,
                  "src": "3991:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23037,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "3991:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3990:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23041,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23051,
                  "src": "4068:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23040,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4068:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4067:21:81"
            },
            "scope": 25116,
            "src": "3978:177:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23081,
              "nodeType": "Block",
              "src": "4271:157:81",
              "statements": [
                {
                  "assignments": [
                    23059
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23059,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23082,
                      "src": "4277:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23058,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4277:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23063,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23061,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23053,
                        "src": "4303:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      ],
                      "id": 23060,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23051,
                        23431,
                        23802,
                        24085,
                        24368,
                        24681,
                        24952
                      ],
                      "referencedDeclaration": 23051,
                      "src": "4299:3:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 23062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4299:9:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4277:31:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23064,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23059,
                      "src": "4318:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23065,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "4333:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4318:19:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23079,
                    "nodeType": "Block",
                    "src": "4390:34:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23075,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23056,
                            "src": "4398:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23076,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "4406:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4398:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23078,
                        "nodeType": "ExpressionStatement",
                        "src": "4398:19:81"
                      }
                    ]
                  },
                  "id": 23080,
                  "nodeType": "IfStatement",
                  "src": "4314:110:81",
                  "trueBody": {
                    "id": 23074,
                    "nodeType": "Block",
                    "src": "4339:45:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23067,
                            "name": "_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23056,
                            "src": "4347:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23069,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23053,
                                "src": "4359:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23070,
                                "name": "_item_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23059,
                                "src": "4365:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23068,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "4355:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23071,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4355:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "4347:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23073,
                        "nodeType": "ExpressionStatement",
                        "src": "4347:30:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23082,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23053,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23082,
                  "src": "4177:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23052,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4177:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4176:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23057,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23056,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23082,
                  "src": "4254:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23055,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4254:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4253:15:81"
            },
            "scope": 25116,
            "src": "4159:269:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23098,
              "nodeType": "Block",
              "src": "4558:108:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23091,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23089,
                      "src": "4564:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23092,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23084,
                          "src": "4571:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23093,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "4571:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23095,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23094,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23086,
                        "src": "4590:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4571:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4564:38:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23097,
                  "nodeType": "ExpressionStatement",
                  "src": "4564:38:81"
                }
              ]
            },
            "documentation": null,
            "id": 23099,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23087,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23084,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4447:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23083,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4447:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23086,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4466:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23085,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4466:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4446:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23090,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23089,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23099,
                  "src": "4545:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23088,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4545:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4544:11:81"
            },
            "scope": 25116,
            "src": "4432:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23122,
              "nodeType": "Block",
              "src": "4795:99:81",
              "statements": [
                {
                  "assignments": [
                    23109
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23109,
                      "name": "_item_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23123,
                      "src": "4801:19:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23108,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4801:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23114,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23110,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23101,
                        "src": "4823:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      "id": 23111,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "item_index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22576,
                      "src": "4823:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 23113,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 23112,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23103,
                      "src": "4839:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4823:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4801:44:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23115,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23106,
                      "src": "4851:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23116,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23101,
                          "src": "4858:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23117,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "4858:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23119,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23118,
                        "name": "_item_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23109,
                        "src": "4877:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4858:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4851:38:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23121,
                  "nodeType": "ExpressionStatement",
                  "src": "4851:38:81"
                }
              ]
            },
            "documentation": null,
            "id": 23123,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23101,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4690:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23100,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4690:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23103,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4709:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23102,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4709:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4689:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23106,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23123,
                  "src": "4782:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23105,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4782:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4781:11:81"
            },
            "scope": 25116,
            "src": "4670:224:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23155,
              "nodeType": "Block",
              "src": "5044:184:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23132,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23125,
                          "src": "5054:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23133,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "5054:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23135,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23134,
                        "name": "_current_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23127,
                        "src": "5073:14:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5054:34:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 23136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5092:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5054:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23153,
                    "nodeType": "Block",
                    "src": "5187:37:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23149,
                            "name": "_previous_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23130,
                            "src": "5195:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23150,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "5213:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5195:22:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23152,
                        "nodeType": "ExpressionStatement",
                        "src": "5195:22:81"
                      }
                    ]
                  },
                  "id": 23154,
                  "nodeType": "IfStatement",
                  "src": "5050:174:81",
                  "trueBody": {
                    "id": 23148,
                    "nodeType": "Block",
                    "src": "5098:83:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23146,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23138,
                            "name": "_previous_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23130,
                            "src": "5106:15:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23139,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23125,
                                  "src": "5124:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 23140,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "5124:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 23144,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 23143,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 23141,
                                  "name": "_current_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23127,
                                  "src": "5140:14:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 23142,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5157:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5140:18:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5124:35:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 23145,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "previous_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22563,
                            "src": "5124:50:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5106:68:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23147,
                        "nodeType": "ExpressionStatement",
                        "src": "5106:68:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23125,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "4916:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23124,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "4916:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23127,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "4935:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4935:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4915:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23131,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23130,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23156,
                  "src": "5017:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23129,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5017:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5016:25:81"
            },
            "scope": 25116,
            "src": "4898:330:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23196,
              "nodeType": "Block",
              "src": "5381:265:81",
              "statements": [
                {
                  "assignments": [
                    23166
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23166,
                      "name": "_current_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23197,
                      "src": "5387:22:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23165,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5387:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23171,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23168,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23158,
                        "src": "5417:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 23169,
                        "name": "_current_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23160,
                        "src": "5423:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 23167,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "5412:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 23170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5412:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5387:50:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23172,
                      "name": "_current_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23166,
                      "src": "5447:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23173,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "5465:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5447:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23194,
                    "nodeType": "Block",
                    "src": "5599:43:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23190,
                            "name": "_previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23163,
                            "src": "5607:14:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23191,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "5624:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5607:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23193,
                        "nodeType": "ExpressionStatement",
                        "src": "5607:28:81"
                      }
                    ]
                  },
                  "id": 23195,
                  "nodeType": "IfStatement",
                  "src": "5443:199:81",
                  "trueBody": {
                    "id": 23189,
                    "nodeType": "Block",
                    "src": "5471:122:81",
                    "statements": [
                      {
                        "assignments": [
                          23176
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 23176,
                            "name": "_previous_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 23197,
                            "src": "5479:23:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 23175,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5479:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 23181,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23178,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23158,
                              "src": "5514:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23179,
                              "name": "_current_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23166,
                              "src": "5520:14:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23177,
                            "name": "previous",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23156,
                              23504,
                              23891,
                              24158,
                              24457,
                              24750,
                              25041
                            ],
                            "referencedDeclaration": 23156,
                            "src": "5505:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                            }
                          },
                          "id": 23180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5505:30:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5479:56:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23182,
                            "name": "_previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23163,
                            "src": "5543:14:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23184,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23158,
                                "src": "5564:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23185,
                                "name": "_previous_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23176,
                                "src": "5570:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23183,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "5560:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23186,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5560:26:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5543:43:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23188,
                        "nodeType": "ExpressionStatement",
                        "src": "5543:43:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23197,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23158,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5255:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23157,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5255:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23160,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5274:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23159,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5274:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5254:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23163,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23197,
                  "src": "5355:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23162,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5355:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5354:24:81"
            },
            "scope": 25116,
            "src": "5232:414:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23229,
              "nodeType": "Block",
              "src": "5788:172:81",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23206,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23199,
                          "src": "5798:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                            "typeString": "struct DoublyLinkedList.Data storage pointer"
                          }
                        },
                        "id": 23207,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "valid_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22580,
                        "src": "5798:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
                          "typeString": "mapping(uint256 => bool)"
                        }
                      },
                      "id": 23209,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 23208,
                        "name": "_current_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23201,
                        "src": "5817:14:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5798:34:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 23210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5836:4:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "5798:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23227,
                    "nodeType": "Block",
                    "src": "5923:33:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23223,
                            "name": "_next_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23204,
                            "src": "5931:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23224,
                            "name": "NONE",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22613,
                            "src": "5945:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5931:18:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23226,
                        "nodeType": "ExpressionStatement",
                        "src": "5931:18:81"
                      }
                    ]
                  },
                  "id": 23228,
                  "nodeType": "IfStatement",
                  "src": "5794:162:81",
                  "trueBody": {
                    "id": 23222,
                    "nodeType": "Block",
                    "src": "5842:75:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23212,
                            "name": "_next_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23204,
                            "src": "5850:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23213,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23199,
                                  "src": "5864:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.Data storage pointer"
                                  }
                                },
                                "id": 23214,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "collection",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22583,
                                "src": "5864:15:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_Item_$22566_storage_$dyn_storage",
                                  "typeString": "struct DoublyLinkedList.Item storage ref[] storage ref"
                                }
                              },
                              "id": 23218,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 23217,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 23215,
                                  "name": "_current_index",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23201,
                                  "src": "5880:14:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 23216,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5897:1:81",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5880:18:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5864:35:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Item_$22566_storage",
                                "typeString": "struct DoublyLinkedList.Item storage ref"
                              }
                            },
                            "id": 23219,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "next_index",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22565,
                            "src": "5864:46:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5850:60:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23221,
                        "nodeType": "ExpressionStatement",
                        "src": "5850:60:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23230,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23199,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5664:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23198,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5664:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23201,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5683:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5683:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5663:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23204,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23230,
                  "src": "5765:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5765:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5764:21:81"
            },
            "scope": 25116,
            "src": "5650:310:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23270,
              "nodeType": "Block",
              "src": "6105:245:81",
              "statements": [
                {
                  "assignments": [
                    23240
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23240,
                      "name": "_current_index",
                      "nodeType": "VariableDeclaration",
                      "scope": 23271,
                      "src": "6111:22:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23239,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6111:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23245,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23242,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23232,
                        "src": "6141:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 23243,
                        "name": "_current_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23234,
                        "src": "6147:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                          "typeString": "struct DoublyLinkedList.Data storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 23241,
                      "name": "find",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        22660,
                        23291,
                        23586,
                        23630,
                        24549
                      ],
                      "referencedDeclaration": 22660,
                      "src": "6136:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 23244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6136:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6111:50:81"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23246,
                      "name": "_current_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23240,
                      "src": "6171:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23247,
                      "name": "NONE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22613,
                      "src": "6189:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:22:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 23268,
                    "nodeType": "Block",
                    "src": "6307:39:81",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23264,
                            "name": "_next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23237,
                            "src": "6315:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 23265,
                            "name": "EMPTY_BYTES",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22618,
                            "src": "6328:11:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "6315:24:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23267,
                        "nodeType": "ExpressionStatement",
                        "src": "6315:24:81"
                      }
                    ]
                  },
                  "id": 23269,
                  "nodeType": "IfStatement",
                  "src": "6167:179:81",
                  "trueBody": {
                    "id": 23263,
                    "nodeType": "Block",
                    "src": "6195:106:81",
                    "statements": [
                      {
                        "assignments": [
                          23250
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 23250,
                            "name": "_next_index",
                            "nodeType": "VariableDeclaration",
                            "scope": 23271,
                            "src": "6203:19:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 23249,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "6203:7:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 23255,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23252,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23232,
                              "src": "6230:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23253,
                              "name": "_current_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23240,
                              "src": "6236:14:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                "typeString": "struct DoublyLinkedList.Data storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23251,
                            "name": "next",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23230,
                              23544,
                              23939,
                              24198,
                              24505,
                              24786,
                              25089
                            ],
                            "referencedDeclaration": 23230,
                            "src": "6225:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                            }
                          },
                          "id": 23254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6225:26:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6203:48:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23256,
                            "name": "_next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23237,
                            "src": "6259:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23258,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23232,
                                "src": "6276:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23259,
                                "name": "_next_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23250,
                                "src": "6282:11:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Data storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23257,
                              "name": "get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                22693,
                                23311,
                                23606,
                                23654,
                                24567
                              ],
                              "referencedDeclaration": 22693,
                              "src": "6272:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 23260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6272:22:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "6259:35:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 23262,
                        "nodeType": "ExpressionStatement",
                        "src": "6259:35:81"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 23271,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23232,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "5983:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Data"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23231,
                    "name": "Data",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22584,
                    "src": "5983:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Data_$22584_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Data"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23234,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "6002:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6002:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5982:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23237,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23271,
                  "src": "6083:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23236,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6083:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6082:20:81"
            },
            "scope": 25116,
            "src": "5964:386:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23290,
              "nodeType": "Block",
              "src": "6483:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23288,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23280,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23278,
                      "src": "6489:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23282,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23273,
                            "src": "6508:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23283,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "6508:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23285,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23275,
                              "src": "6527:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23284,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6519:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23286,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6519:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23281,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "6503:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23287,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6503:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6489:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23289,
                  "nodeType": "ExpressionStatement",
                  "src": "6489:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23291,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23273,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6368:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23272,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6368:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23275,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6387:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23274,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6387:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6367:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23278,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23291,
                  "src": "6460:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23277,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6460:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6459:21:81"
            },
            "scope": 25116,
            "src": "6354:185:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23310,
              "nodeType": "Block",
              "src": "6671:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23308,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23300,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23298,
                      "src": "6677:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23303,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23293,
                                "src": "6697:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23304,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "6697:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23305,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23295,
                              "src": "6708:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23302,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "6693:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6693:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6685:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6685:36:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6677:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23309,
                  "nodeType": "ExpressionStatement",
                  "src": "6677:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23293,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6556:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23292,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6556:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23295,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6575:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23294,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6575:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6555:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23298,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23311,
                  "src": "6654:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23297,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6654:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6653:15:81"
            },
            "scope": 25116,
            "src": "6543:183:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23330,
              "nodeType": "Block",
              "src": "6836:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23320,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23318,
                      "src": "6842:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23322,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23313,
                            "src": "6860:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23323,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "6860:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23325,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23315,
                              "src": "6879:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6871:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6871:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23321,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "6853:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6853:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "6842:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23329,
                  "nodeType": "ExpressionStatement",
                  "src": "6842:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23331,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23313,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6747:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23312,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6747:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23315,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6766:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6766:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6746:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23319,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23318,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "6819:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23317,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6819:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6818:15:81"
            },
            "scope": 25116,
            "src": "6731:160:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23348,
              "nodeType": "Block",
              "src": "7003:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23340,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23338,
                      "src": "7009:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23342,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23333,
                            "src": "7027:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23343,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7027:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23344,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23335,
                          "src": "7038:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23341,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "7020:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7020:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7009:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23347,
                  "nodeType": "ExpressionStatement",
                  "src": "7009:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 23349,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23333,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6911:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23332,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "6911:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23335,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6930:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23334,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6930:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6910:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23338,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23349,
                  "src": "6986:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23337,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6986:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6985:15:81"
            },
            "scope": 25116,
            "src": "6895:155:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23368,
              "nodeType": "Block",
              "src": "7164:60:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23358,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23356,
                      "src": "7170:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23360,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23351,
                            "src": "7193:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23361,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7193:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23363,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23353,
                              "src": "7212:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23362,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "7204:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7204:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23359,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "7181:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23365,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7181:38:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7170:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23367,
                  "nodeType": "ExpressionStatement",
                  "src": "7170:49:81"
                }
              ]
            },
            "documentation": null,
            "id": 23369,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23351,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7075:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23350,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7075:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23353,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7094:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23352,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7094:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7074:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23356,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23369,
                  "src": "7147:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23355,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7147:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7146:15:81"
            },
            "scope": 25116,
            "src": "7054:170:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23383,
              "nodeType": "Block",
              "src": "7344:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23376,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23374,
                      "src": "7350:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23378,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23371,
                            "src": "7371:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23379,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7371:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23377,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "7365:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7365:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7350:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23382,
                  "nodeType": "ExpressionStatement",
                  "src": "7350:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 23384,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23372,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23371,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23384,
                  "src": "7243:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23370,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7243:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7242:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23374,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 23384,
                  "src": "7320:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23373,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7320:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7319:22:81"
            },
            "scope": 25116,
            "src": "7228:158:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23398,
              "nodeType": "Block",
              "src": "7500:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23391,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23389,
                      "src": "7506:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23393,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23386,
                            "src": "7521:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23394,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7521:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23392,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "7515:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23395,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7515:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7506:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23397,
                  "nodeType": "ExpressionStatement",
                  "src": "7506:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 23399,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23386,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23399,
                  "src": "7405:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23385,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7405:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7404:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23389,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23399,
                  "src": "7482:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23388,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7482:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7481:16:81"
            },
            "scope": 25116,
            "src": "7390:146:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23415,
              "nodeType": "Block",
              "src": "7660:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23406,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23404,
                      "src": "7666:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23409,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23401,
                                "src": "7699:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23410,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "7699:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23408,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "7688:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23411,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7688:21:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7680:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23412,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7680:30:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7666:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23414,
                  "nodeType": "ExpressionStatement",
                  "src": "7666:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23416,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23401,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23416,
                  "src": "7560:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23400,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7560:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7559:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23404,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23416,
                  "src": "7637:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23403,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7637:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7636:21:81"
            },
            "scope": 25116,
            "src": "7540:175:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23430,
              "nodeType": "Block",
              "src": "7828:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23428,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23423,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23421,
                      "src": "7834:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23425,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23418,
                            "src": "7847:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23426,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "7847:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23424,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "7843:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23427,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7843:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7834:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23429,
                  "nodeType": "ExpressionStatement",
                  "src": "7834:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 23431,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23419,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23418,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "7733:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23417,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7733:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7732:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23421,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "7810:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23420,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7810:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7809:16:81"
            },
            "scope": 25116,
            "src": "7720:142:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23447,
              "nodeType": "Block",
              "src": "7982:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23438,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23436,
                      "src": "7988:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23441,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23433,
                                "src": "8017:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23442,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "8017:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23440,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "8008:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8008:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8000:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8000:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7988:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23446,
                  "nodeType": "ExpressionStatement",
                  "src": "7988:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 23448,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23433,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23448,
                  "src": "7884:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23432,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "7884:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7883:19:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23436,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23448,
                  "src": "7961:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23435,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7960:19:81"
            },
            "scope": 25116,
            "src": "7866:167:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23465,
              "nodeType": "Block",
              "src": "8163:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23457,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23455,
                      "src": "8169:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23459,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23450,
                            "src": "8182:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23460,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8182:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23461,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23452,
                          "src": "8193:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23458,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "8176:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 23462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8176:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8169:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23464,
                  "nodeType": "ExpressionStatement",
                  "src": "8169:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 23466,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23450,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8052:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23449,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8052:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23452,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8071:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23451,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8071:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8051:40:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23456,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23455,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23466,
                  "src": "8150:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23454,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8150:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8149:11:81"
            },
            "scope": 25116,
            "src": "8037:173:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23485,
              "nodeType": "Block",
              "src": "8339:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23475,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23473,
                      "src": "8345:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23477,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23468,
                            "src": "8363:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23478,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8363:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23480,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23470,
                              "src": "8382:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23479,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8374:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8374:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23476,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "8352:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 23482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8352:37:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8345:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23484,
                  "nodeType": "ExpressionStatement",
                  "src": "8345:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23486,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23468,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8234:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23467,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8234:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23470,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8253:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23469,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8253:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8233:34:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23473,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23486,
                  "src": "8326:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23472,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8326:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8325:11:81"
            },
            "scope": 25116,
            "src": "8214:180:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23503,
              "nodeType": "Block",
              "src": "8544:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23495,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23493,
                      "src": "8550:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23497,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23488,
                            "src": "8577:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23498,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "8577:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23499,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23490,
                          "src": "8588:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23496,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "8568:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23500,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8568:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8550:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23502,
                  "nodeType": "ExpressionStatement",
                  "src": "8550:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 23504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23488,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8416:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23487,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8416:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23490,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8435:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23489,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8435:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8415:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23494,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23493,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23504,
                  "src": "8517:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23492,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8517:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8516:25:81"
            },
            "scope": 25116,
            "src": "8398:210:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23525,
              "nodeType": "Block",
              "src": "8761:85:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23523,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23513,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23511,
                      "src": "8767:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23516,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23506,
                                "src": "8806:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23517,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "8806:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23519,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23508,
                                  "src": "8825:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23518,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "8817:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23520,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "8817:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23515,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "8792:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23521,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8792:48:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8784:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23522,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8784:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8767:74:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23524,
                  "nodeType": "ExpressionStatement",
                  "src": "8767:74:81"
                }
              ]
            },
            "documentation": null,
            "id": 23526,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23509,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23506,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8635:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23505,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8635:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23508,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8654:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23507,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8654:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8634:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23512,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23511,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23526,
                  "src": "8735:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23510,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8735:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8734:24:81"
            },
            "scope": 25116,
            "src": "8612:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23543,
              "nodeType": "Block",
              "src": "8988:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23535,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23533,
                      "src": "8994:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23537,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23528,
                            "src": "9013:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Uint storage pointer"
                            }
                          },
                          "id": 23538,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22607,
                          "src": "9013:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23539,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23530,
                          "src": "9024:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23536,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "9008:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23540,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9008:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8994:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23542,
                  "nodeType": "ExpressionStatement",
                  "src": "8994:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23544,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23528,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8864:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23527,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "8864:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23530,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8883:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23529,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8883:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8863:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23533,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23544,
                  "src": "8965:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8965:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8964:21:81"
            },
            "scope": 25116,
            "src": "8850:194:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23565,
              "nodeType": "Block",
              "src": "9189:77:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23563,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23553,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23551,
                      "src": "9195:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23556,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23546,
                                "src": "9226:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Uint storage pointer"
                                }
                              },
                              "id": 23557,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22607,
                              "src": "9226:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23559,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23548,
                                  "src": "9245:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23558,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "9237:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23560,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9237:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23555,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "9216:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23561,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9216:44:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23554,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9208:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9208:53:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9195:66:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23564,
                  "nodeType": "ExpressionStatement",
                  "src": "9195:66:81"
                }
              ]
            },
            "documentation": null,
            "id": 23566,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23546,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9067:17:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Uint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23545,
                    "name": "Uint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22608,
                    "src": "9067:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Uint_$22608_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Uint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23548,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9086:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23547,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9086:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9066:42:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23551,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23566,
                  "src": "9167:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23550,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9167:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9166:20:81"
            },
            "scope": 25116,
            "src": "9048:218:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23585,
              "nodeType": "Block",
              "src": "9402:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23575,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23573,
                      "src": "9408:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23577,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23568,
                            "src": "9427:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23578,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "9427:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23580,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23570,
                              "src": "9446:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 23579,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9438:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23581,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9438:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23576,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "9422:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9422:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9408:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23584,
                  "nodeType": "ExpressionStatement",
                  "src": "9408:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 23586,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23568,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9284:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23567,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "9284:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23570,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9306:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23569,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9306:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9283:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23573,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23586,
                  "src": "9379:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9379:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9378:21:81"
            },
            "scope": 25116,
            "src": "9270:188:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23605,
              "nodeType": "Block",
              "src": "9593:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23595,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23593,
                      "src": "9599:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23598,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23588,
                                "src": "9619:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 23599,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "9619:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23600,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23590,
                              "src": "9630:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23597,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "9615:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23601,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9615:27:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23596,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9607:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 23602,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9607:36:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9599:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 23604,
                  "nodeType": "ExpressionStatement",
                  "src": "9599:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23606,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23588,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9475:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23587,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "9475:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23590,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9497:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23589,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9497:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9474:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23593,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23606,
                  "src": "9576:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23592,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9575:15:81"
            },
            "scope": 25116,
            "src": "9462:186:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23629,
              "nodeType": "Block",
              "src": "9816:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23617,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23615,
                      "src": "9822:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23619,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23608,
                              "src": "9841:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23620,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "9841:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23622,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23621,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23610,
                            "src": "9851:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9841:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23624,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23612,
                              "src": "9879:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23623,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9871:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23625,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9871:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23618,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "9836:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 23626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9836:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9822:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23628,
                  "nodeType": "ExpressionStatement",
                  "src": "9822:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 23630,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23608,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9667:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23607,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "9667:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23610,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9693:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9693:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23612,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9720:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9720:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9666:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23615,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23630,
                  "src": "9793:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23614,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9793:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9792:21:81"
            },
            "scope": 25116,
            "src": "9653:238:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23653,
              "nodeType": "Block",
              "src": "10057:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23641,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23639,
                      "src": "10063:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23644,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23632,
                                  "src": "10083:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23645,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "10083:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23647,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23646,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23634,
                                "src": "10093:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10083:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23648,
                              "name": "_item_index",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23636,
                              "src": "10113:11:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23643,
                            "name": "get",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              22693,
                              23311,
                              23606,
                              23654,
                              24567
                            ],
                            "referencedDeclaration": 22693,
                            "src": "10079:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                            }
                          },
                          "id": 23649,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10079:46:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10071:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23650,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10071:55:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10063:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23652,
                  "nodeType": "ExpressionStatement",
                  "src": "10063:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23654,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23632,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9908:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23631,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "9908:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23634,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9934:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23633,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9934:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23636,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "9961:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23635,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9961:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9907:74:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23639,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23654,
                  "src": "10040:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23638,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10040:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10039:15:81"
            },
            "scope": 25116,
            "src": "9895:236:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23677,
              "nodeType": "Block",
              "src": "10275:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23665,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23663,
                      "src": "10281:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23667,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23656,
                              "src": "10299:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23668,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10299:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23670,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23669,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23658,
                            "src": "10309:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10299:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23672,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23660,
                              "src": "10337:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23671,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10329:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10329:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23666,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "10292:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10292:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10281:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23676,
                  "nodeType": "ExpressionStatement",
                  "src": "10281:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23678,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23656,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10152:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23655,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10152:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23658,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10178:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23657,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10178:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23660,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10205:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10205:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10151:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23663,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23678,
                  "src": "10258:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23662,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10258:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10257:15:81"
            },
            "scope": 25116,
            "src": "10136:213:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23699,
              "nodeType": "Block",
              "src": "10495:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23689,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23687,
                      "src": "10501:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23691,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23680,
                              "src": "10519:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23692,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10519:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23694,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23693,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23682,
                            "src": "10529:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10519:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23695,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23684,
                          "src": "10549:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23690,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "10512:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10512:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10501:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23698,
                  "nodeType": "ExpressionStatement",
                  "src": "10501:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 23700,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23685,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23680,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10369:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23679,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10369:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23682,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10395:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23681,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10395:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23684,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10422:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10422:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10368:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23688,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23687,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23700,
                  "src": "10478:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23686,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10478:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10477:15:81"
            },
            "scope": 25116,
            "src": "10353:208:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23723,
              "nodeType": "Block",
              "src": "10709:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23711,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23709,
                      "src": "10715:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23713,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23702,
                              "src": "10738:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23714,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10738:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23716,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23715,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23704,
                            "src": "10748:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10738:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23718,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23706,
                              "src": "10776:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10768:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23719,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10768:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23712,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "10726:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10726:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "10715:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23722,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 23724,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23702,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10586:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23701,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10586:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23704,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10612:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23703,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10612:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23706,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10639:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10639:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10585:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23709,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23724,
                  "src": "10692:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23708,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10692:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10691:15:81"
            },
            "scope": 25116,
            "src": "10565:223:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23742,
              "nodeType": "Block",
              "src": "10942:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23733,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23731,
                      "src": "10948:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23735,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23726,
                              "src": "10969:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23736,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "10969:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23738,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23737,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23728,
                            "src": "10979:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10969:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23734,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "10963:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10963:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10948:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23741,
                  "nodeType": "ExpressionStatement",
                  "src": "10948:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 23743,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23729,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23726,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10807:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23725,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "10807:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23728,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10833:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23727,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10833:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10806:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23732,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23731,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 23743,
                  "src": "10918:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23730,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10918:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10917:22:81"
            },
            "scope": 25116,
            "src": "10792:211:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23761,
              "nodeType": "Block",
              "src": "11151:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23752,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23750,
                      "src": "11157:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23754,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23745,
                              "src": "11172:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23755,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "11172:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23757,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23756,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23747,
                            "src": "11182:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11172:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23753,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "11166:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23758,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11166:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11157:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23760,
                  "nodeType": "ExpressionStatement",
                  "src": "11157:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23762,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23748,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23745,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11022:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23744,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11022:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23747,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11048:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23746,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11048:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11021:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23751,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23750,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23762,
                  "src": "11133:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23749,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11133:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11132:16:81"
            },
            "scope": 25116,
            "src": "11007:199:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23782,
              "nodeType": "Block",
              "src": "11364:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23771,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23769,
                      "src": "11370:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23774,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23764,
                                  "src": "11403:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23775,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "11403:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23776,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23766,
                                "src": "11413:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11403:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23773,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "11392:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23778,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11392:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11384:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11384:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11370:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23781,
                  "nodeType": "ExpressionStatement",
                  "src": "11370:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23783,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23764,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11230:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23763,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11230:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23766,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11256:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23765,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11256:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11229:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23770,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23769,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23783,
                  "src": "11341:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11341:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11340:21:81"
            },
            "scope": 25116,
            "src": "11210:228:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23801,
              "nodeType": "Block",
              "src": "11585:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23792,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23790,
                      "src": "11591:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23794,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23785,
                              "src": "11604:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23795,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "11604:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23797,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23796,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23787,
                            "src": "11614:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11604:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 23793,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "11600:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 23798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11600:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11591:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23800,
                  "nodeType": "ExpressionStatement",
                  "src": "11591:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 23802,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23788,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23785,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11456:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23784,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11456:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23787,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11482:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23786,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11482:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11455:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23790,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23802,
                  "src": "11567:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23789,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11567:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11566:16:81"
            },
            "scope": 25116,
            "src": "11443:195:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23822,
              "nodeType": "Block",
              "src": "11792:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23811,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23809,
                      "src": "11798:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23814,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23804,
                                  "src": "11827:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23815,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "11827:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23817,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23816,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23806,
                                "src": "11837:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11827:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 23813,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "11818:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 23818,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11818:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11810:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23819,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11810:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11798:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23821,
                  "nodeType": "ExpressionStatement",
                  "src": "11798:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 23823,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23804,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11660:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23803,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11660:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23806,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11686:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23805,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11686:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11659:53:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23809,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23823,
                  "src": "11771:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23808,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11771:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11770:19:81"
            },
            "scope": 25116,
            "src": "11642:220:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23844,
              "nodeType": "Block",
              "src": "12026:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23834,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23832,
                      "src": "12032:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23836,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23825,
                              "src": "12045:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23837,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12045:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23839,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23838,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23827,
                            "src": "12055:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12045:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23840,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23829,
                          "src": "12075:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23835,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "12039:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 23841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12039:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "12032:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23843,
                  "nodeType": "ExpressionStatement",
                  "src": "12032:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 23845,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23825,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11881:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23824,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "11881:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23827,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11907:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23826,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11907:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23829,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "11934:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11934:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11880:74:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23832,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23845,
                  "src": "12013:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23831,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "12013:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12012:11:81"
            },
            "scope": 25116,
            "src": "11866:226:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23868,
              "nodeType": "Block",
              "src": "12255:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23856,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23854,
                      "src": "12261:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23858,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23847,
                              "src": "12279:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23859,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12279:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23861,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23860,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23849,
                            "src": "12289:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12279:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23863,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23851,
                              "src": "12317:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23862,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "12309:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23864,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12309:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23857,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "12268:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 23865,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12268:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "12261:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23867,
                  "nodeType": "ExpressionStatement",
                  "src": "12261:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 23869,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23847,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12116:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23846,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12116:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23849,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12142:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23848,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12142:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23851,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12169:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23850,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12169:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12115:68:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23855,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23854,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 23869,
                  "src": "12242:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23853,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "12242:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12241:11:81"
            },
            "scope": 25116,
            "src": "12096:233:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23890,
              "nodeType": "Block",
              "src": "12513:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23880,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23878,
                      "src": "12519:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23882,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23871,
                              "src": "12546:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23883,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "12546:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23885,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23884,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23873,
                            "src": "12556:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "12546:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23886,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23875,
                          "src": "12576:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23881,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "12537:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12537:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12519:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23889,
                  "nodeType": "ExpressionStatement",
                  "src": "12519:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 23891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23876,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23871,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12351:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23870,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12351:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23873,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12377:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12377:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23875,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12404:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23874,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12404:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12350:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23878,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23891,
                  "src": "12486:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23877,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12486:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12485:25:81"
            },
            "scope": 25116,
            "src": "12333:263:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23916,
              "nodeType": "Block",
              "src": "12783:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23902,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23900,
                      "src": "12789:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23905,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23893,
                                  "src": "12828:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23906,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "12828:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23908,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23907,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23895,
                                "src": "12838:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12828:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23910,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23897,
                                  "src": "12866:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23909,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12858:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12858:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23904,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "12814:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12814:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12806:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23913,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12806:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12789:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23915,
                  "nodeType": "ExpressionStatement",
                  "src": "12789:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 23917,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23893,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12623:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23892,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12623:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23895,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12649:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23894,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12649:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23897,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12676:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23896,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12676:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12622:76:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23900,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23917,
                  "src": "12757:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12757:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12756:24:81"
            },
            "scope": 25116,
            "src": "12600:287:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23938,
              "nodeType": "Block",
              "src": "13063:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23928,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23926,
                      "src": "13069:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23930,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23919,
                              "src": "13088:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                              }
                            },
                            "id": 23931,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22588,
                            "src": "13088:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 23933,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 23932,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23921,
                            "src": "13098:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13088:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23934,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23923,
                          "src": "13118:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23929,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "13083:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 23935,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13083:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13069:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23937,
                  "nodeType": "ExpressionStatement",
                  "src": "13069:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 23939,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23919,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12905:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23918,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "12905:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23921,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12931:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23920,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12931:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23923,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "12958:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12958:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12904:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23927,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23926,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23939,
                  "src": "13040:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23925,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13040:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13039:21:81"
            },
            "scope": 25116,
            "src": "12891:247:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23964,
              "nodeType": "Block",
              "src": "13317:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23950,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23948,
                      "src": "13323:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23953,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23941,
                                  "src": "13354:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedUint storage pointer"
                                  }
                                },
                                "id": 23954,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22588,
                                "src": "13354:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 23956,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 23955,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23943,
                                "src": "13364:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13354:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23958,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23945,
                                  "src": "13392:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23957,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "13384:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 23959,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13384:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 23952,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "13344:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 23960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13344:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23951,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "13336:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": "uint256"
                      },
                      "id": 23961,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13336:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13323:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23963,
                  "nodeType": "ExpressionStatement",
                  "src": "13323:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 23965,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23941,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13161:24:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedUint"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23940,
                    "name": "IndexedUint",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22589,
                    "src": "13161:11:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedUint_$22589_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedUint"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23943,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13187:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23942,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13187:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23945,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13214:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23944,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13214:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:76:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23948,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 23965,
                  "src": "13295:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23947,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13295:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13294:20:81"
            },
            "scope": 25116,
            "src": "13142:271:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 23984,
              "nodeType": "Block",
              "src": "13525:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23974,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23972,
                      "src": "13531:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23976,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23967,
                            "src": "13549:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23977,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13549:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23979,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23969,
                              "src": "13568:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 23978,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "13560:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 23980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13560:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 23975,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "13542:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 23981,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13542:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13531:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 23983,
                  "nodeType": "ExpressionStatement",
                  "src": "13531:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 23985,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23970,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23967,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13433:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23966,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13433:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23969,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13455:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23968,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13455:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13432:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23972,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 23985,
                  "src": "13508:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23971,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13508:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13507:15:81"
            },
            "scope": 25116,
            "src": "13417:163:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24002,
              "nodeType": "Block",
              "src": "13695:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 23994,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23992,
                      "src": "13701:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23996,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23987,
                            "src": "13719:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 23997,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13719:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23998,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23989,
                          "src": "13730:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 23995,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "13712:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 23999,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13712:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13701:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24001,
                  "nodeType": "ExpressionStatement",
                  "src": "13701:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24003,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23990,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23987,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13600:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23986,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13600:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23989,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13622:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13622:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13599:38:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 23993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23992,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24003,
                  "src": "13678:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23991,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13678:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13677:15:81"
            },
            "scope": 25116,
            "src": "13584:158:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24022,
              "nodeType": "Block",
              "src": "13860:60:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24012,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24010,
                      "src": "13866:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24014,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24005,
                            "src": "13889:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24015,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "13889:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24017,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24007,
                              "src": "13908:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24016,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "13900:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24018,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13900:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24013,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "13877:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13877:38:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "13866:49:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24021,
                  "nodeType": "ExpressionStatement",
                  "src": "13866:49:81"
                }
              ]
            },
            "documentation": null,
            "id": 24023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24005,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13768:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24004,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13768:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24007,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13790:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24006,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13790:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13767:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24010,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24023,
                  "src": "13843:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24009,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13843:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13842:15:81"
            },
            "scope": 25116,
            "src": "13747:173:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24037,
              "nodeType": "Block",
              "src": "14043:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24030,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24028,
                      "src": "14049:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24032,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24025,
                            "src": "14070:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24033,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14070:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24031,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "14064:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14064:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14049:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24036,
                  "nodeType": "ExpressionStatement",
                  "src": "14049:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24038,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24025,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24038,
                  "src": "13939:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24024,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "13939:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13938:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24028,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24038,
                  "src": "14019:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14019:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14018:22:81"
            },
            "scope": 25116,
            "src": "13924:161:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24052,
              "nodeType": "Block",
              "src": "14202:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24050,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24045,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24043,
                      "src": "14208:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24047,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24040,
                            "src": "14223:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24048,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14223:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24046,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "14217:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24049,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14217:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14208:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24051,
                  "nodeType": "ExpressionStatement",
                  "src": "14208:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 24053,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24041,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24040,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24053,
                  "src": "14104:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24039,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14104:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14103:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24043,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24053,
                  "src": "14184:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24042,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14184:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14183:16:81"
            },
            "scope": 25116,
            "src": "14089:149:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24069,
              "nodeType": "Block",
              "src": "14365:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24060,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24058,
                      "src": "14371:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24063,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24055,
                                "src": "14404:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24064,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "14404:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24062,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "14393:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14393:21:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "14385:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14385:30:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14371:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24068,
                  "nodeType": "ExpressionStatement",
                  "src": "14371:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24055,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24070,
                  "src": "14262:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24054,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14262:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14261:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24059,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24058,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24070,
                  "src": "14342:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24057,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14342:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14341:21:81"
            },
            "scope": 25116,
            "src": "14242:178:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24084,
              "nodeType": "Block",
              "src": "14536:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24077,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24075,
                      "src": "14542:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24079,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24072,
                            "src": "14555:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24080,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14555:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24078,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "14551:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24081,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14551:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14542:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24083,
                  "nodeType": "ExpressionStatement",
                  "src": "14542:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 24085,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24072,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24085,
                  "src": "14438:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24071,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14437:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24075,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24085,
                  "src": "14518:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24074,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14518:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14517:16:81"
            },
            "scope": 25116,
            "src": "14425:145:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24101,
              "nodeType": "Block",
              "src": "14693:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24092,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24090,
                      "src": "14699:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24095,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24087,
                                "src": "14728:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24096,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "14728:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24094,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "14719:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14719:19:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "14711:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24098,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14711:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "14699:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24100,
                  "nodeType": "ExpressionStatement",
                  "src": "14699:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 24102,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24087,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24102,
                  "src": "14592:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24086,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14592:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14591:22:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24090,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24102,
                  "src": "14672:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14672:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14671:19:81"
            },
            "scope": 25116,
            "src": "14574:170:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24119,
              "nodeType": "Block",
              "src": "14877:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24111,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24109,
                      "src": "14883:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24113,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24104,
                            "src": "14896:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24114,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "14896:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24115,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24106,
                          "src": "14907:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24112,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "14890:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24116,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14890:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14883:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24118,
                  "nodeType": "ExpressionStatement",
                  "src": "14883:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24120,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24104,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14763:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24103,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14763:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24106,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14785:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14785:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14762:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24109,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24120,
                  "src": "14864:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24108,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14864:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14863:11:81"
            },
            "scope": 25116,
            "src": "14748:176:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24139,
              "nodeType": "Block",
              "src": "15056:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24129,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24127,
                      "src": "15062:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24131,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24122,
                            "src": "15080:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24132,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15080:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24134,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24124,
                              "src": "15099:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "15091:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24135,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15091:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24130,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "15069:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15069:37:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15062:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24138,
                  "nodeType": "ExpressionStatement",
                  "src": "15062:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24140,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24122,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "14948:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24121,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "14948:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24124,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "14970:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14970:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14947:37:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24127,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24140,
                  "src": "15043:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24126,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15043:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15042:11:81"
            },
            "scope": 25116,
            "src": "14928:183:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24157,
              "nodeType": "Block",
              "src": "15264:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24149,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24147,
                      "src": "15270:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24151,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24142,
                            "src": "15297:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24152,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15297:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24153,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24144,
                          "src": "15308:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24150,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "15288:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24154,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15288:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15270:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24156,
                  "nodeType": "ExpressionStatement",
                  "src": "15270:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 24158,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24142,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15133:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24141,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15133:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24144,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15155:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24143,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15155:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15132:46:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24148,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24147,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24158,
                  "src": "15237:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24146,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15237:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15236:25:81"
            },
            "scope": 25116,
            "src": "15115:213:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24179,
              "nodeType": "Block",
              "src": "15484:85:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24167,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24165,
                      "src": "15490:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24170,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24160,
                                "src": "15529:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24171,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "15529:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24173,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24162,
                                  "src": "15548:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24172,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15540:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24174,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15540:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24169,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "15515:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24175,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15515:48:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15507:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15507:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15490:74:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24178,
                  "nodeType": "ExpressionStatement",
                  "src": "15490:74:81"
                }
              ]
            },
            "documentation": null,
            "id": 24180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24160,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15355:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24159,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15355:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24162,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15377:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15377:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15354:45:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24166,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24165,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24180,
                  "src": "15458:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24164,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15458:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15457:24:81"
            },
            "scope": 25116,
            "src": "15332:237:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24197,
              "nodeType": "Block",
              "src": "15714:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24189,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24187,
                      "src": "15720:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24191,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24182,
                            "src": "15739:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Address storage pointer"
                            }
                          },
                          "id": 24192,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22601,
                          "src": "15739:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24193,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24184,
                          "src": "15750:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24190,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "15734:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24194,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15734:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15720:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24196,
                  "nodeType": "ExpressionStatement",
                  "src": "15720:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 24198,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24182,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15587:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24181,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15587:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24184,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15609:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15609:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15586:46:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24188,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24187,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24198,
                  "src": "15691:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24186,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15691:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15690:21:81"
            },
            "scope": 25116,
            "src": "15573:197:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24219,
              "nodeType": "Block",
              "src": "15918:77:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24207,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24205,
                      "src": "15924:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 24210,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24200,
                                "src": "15955:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                                  "typeString": "struct DoublyLinkedList.Address storage pointer"
                                }
                              },
                              "id": 24211,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22601,
                              "src": "15955:9:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24213,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24202,
                                  "src": "15974:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24212,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15966:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24214,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15966:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24209,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "15945:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15945:44:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15937:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15937:53:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15924:66:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24218,
                  "nodeType": "ExpressionStatement",
                  "src": "15924:66:81"
                }
              ]
            },
            "documentation": null,
            "id": 24220,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24203,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24200,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15793:20:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Address"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24199,
                    "name": "Address",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22602,
                    "src": "15793:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Address_$22602_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24202,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15815:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15815:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15792:45:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24205,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24220,
                  "src": "15896:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24204,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15896:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15895:20:81"
            },
            "scope": 25116,
            "src": "15774:221:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24243,
              "nodeType": "Block",
              "src": "16141:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24231,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24229,
                      "src": "16147:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24233,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24222,
                              "src": "16165:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24234,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16165:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24236,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24235,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24224,
                            "src": "16175:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16165:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24238,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24226,
                              "src": "16203:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24237,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16195:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24239,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16195:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24232,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "16158:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16158:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16147:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24242,
                  "nodeType": "ExpressionStatement",
                  "src": "16147:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24244,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24222,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16015:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24221,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16015:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24224,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16044:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24223,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16044:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24226,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16071:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16071:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16014:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24229,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24244,
                  "src": "16124:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24228,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16124:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16123:15:81"
            },
            "scope": 25116,
            "src": "15999:216:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24265,
              "nodeType": "Block",
              "src": "16364:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24255,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24253,
                      "src": "16370:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24257,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24246,
                              "src": "16388:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24258,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16388:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24260,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24259,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24248,
                            "src": "16398:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16388:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24261,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24250,
                          "src": "16418:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24256,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "16381:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24262,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16381:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16370:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24264,
                  "nodeType": "ExpressionStatement",
                  "src": "16370:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24266,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24246,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16235:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24245,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16235:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24248,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16264:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24247,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16264:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24250,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16291:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24249,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16291:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16234:72:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24253,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24266,
                  "src": "16347:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24252,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16347:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16346:15:81"
            },
            "scope": 25116,
            "src": "16219:211:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24289,
              "nodeType": "Block",
              "src": "16582:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24277,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24275,
                      "src": "16588:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24279,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24268,
                              "src": "16611:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24280,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16611:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24282,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24281,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24270,
                            "src": "16621:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16611:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24284,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24272,
                              "src": "16649:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24283,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16641:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16641:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24278,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "16599:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24286,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16599:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16588:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24288,
                  "nodeType": "ExpressionStatement",
                  "src": "16588:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 24290,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24268,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16456:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24267,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16456:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24270,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16485:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24269,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16485:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24272,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16512:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24271,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16512:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16455:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24275,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24290,
                  "src": "16565:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24274,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16565:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16564:15:81"
            },
            "scope": 25116,
            "src": "16435:226:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24308,
              "nodeType": "Block",
              "src": "16818:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24299,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24297,
                      "src": "16824:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24301,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24292,
                              "src": "16845:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24302,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "16845:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24304,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24303,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24294,
                            "src": "16855:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "16845:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24300,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "16839:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24305,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16839:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16824:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24307,
                  "nodeType": "ExpressionStatement",
                  "src": "16824:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 24309,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24295,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24292,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16680:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24291,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16680:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24294,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16709:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24293,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16709:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16679:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24297,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24309,
                  "src": "16794:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16794:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16793:22:81"
            },
            "scope": 25116,
            "src": "16665:214:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24327,
              "nodeType": "Block",
              "src": "17030:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24318,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24316,
                      "src": "17036:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24320,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24311,
                              "src": "17051:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24321,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17051:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24323,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24322,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24313,
                            "src": "17061:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17051:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24319,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "17045:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24324,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17045:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17036:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24326,
                  "nodeType": "ExpressionStatement",
                  "src": "17036:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24328,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24311,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "16898:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24310,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "16898:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24313,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "16927:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24312,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16927:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16897:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24316,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24328,
                  "src": "17012:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24315,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17012:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17011:16:81"
            },
            "scope": 25116,
            "src": "16883:202:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24348,
              "nodeType": "Block",
              "src": "17246:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24337,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24335,
                      "src": "17252:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24340,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24330,
                                  "src": "17285:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24341,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "17285:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24343,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24342,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24332,
                                "src": "17295:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17285:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24339,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "17274:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24344,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17274:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17266:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24345,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17266:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17252:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24347,
                  "nodeType": "ExpressionStatement",
                  "src": "17252:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24349,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24330,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17109:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24329,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17109:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24332,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17138:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24331,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17138:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17108:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24335,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24349,
                  "src": "17223:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17223:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17222:21:81"
            },
            "scope": 25116,
            "src": "17089:231:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24367,
              "nodeType": "Block",
              "src": "17470:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24365,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24358,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24356,
                      "src": "17476:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24360,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24351,
                              "src": "17489:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24361,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17489:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24363,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24362,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24353,
                            "src": "17499:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17489:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24359,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "17485:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24364,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17485:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17476:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24366,
                  "nodeType": "ExpressionStatement",
                  "src": "17476:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 24368,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24351,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17338:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24350,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17338:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24353,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17367:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24352,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17367:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17337:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24356,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24368,
                  "src": "17452:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24355,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17452:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17451:16:81"
            },
            "scope": 25116,
            "src": "17325:198:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24388,
              "nodeType": "Block",
              "src": "17680:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24377,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24375,
                      "src": "17686:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24380,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24370,
                                  "src": "17715:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24381,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "17715:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24383,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24382,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24372,
                                "src": "17725:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17715:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24379,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "17706:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24384,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17706:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17698:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17698:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17686:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24387,
                  "nodeType": "ExpressionStatement",
                  "src": "17686:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 24389,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24370,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17545:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24369,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17545:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24372,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17574:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24371,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17574:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17544:56:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24375,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24389,
                  "src": "17659:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24374,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17659:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17658:19:81"
            },
            "scope": 25116,
            "src": "17527:223:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24410,
              "nodeType": "Block",
              "src": "17917:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24400,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24398,
                      "src": "17923:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24402,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24391,
                              "src": "17936:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24403,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "17936:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24405,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24404,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24393,
                            "src": "17946:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17936:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24406,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24395,
                          "src": "17966:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24401,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "17930:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24407,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17930:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "17923:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24409,
                  "nodeType": "ExpressionStatement",
                  "src": "17923:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24411,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24396,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24391,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17769:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24390,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "17769:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24393,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17798:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24392,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17798:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24395,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17825:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24394,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17825:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17768:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24398,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24411,
                  "src": "17904:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24397,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "17904:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17903:11:81"
            },
            "scope": 25116,
            "src": "17754:229:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24434,
              "nodeType": "Block",
              "src": "18149:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24422,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24420,
                      "src": "18155:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24424,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24413,
                              "src": "18173:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24425,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18173:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24427,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24426,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24415,
                            "src": "18183:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18173:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24429,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24417,
                              "src": "18211:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 24428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "18203:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18203:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24423,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "18162:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24431,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18162:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "18155:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24433,
                  "nodeType": "ExpressionStatement",
                  "src": "18155:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24435,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24413,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18007:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24412,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18007:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24415,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18036:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18036:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24417,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18063:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24416,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18063:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18006:71:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24421,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24420,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24435,
                  "src": "18136:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24419,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "18136:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18135:11:81"
            },
            "scope": 25116,
            "src": "17987:236:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24456,
              "nodeType": "Block",
              "src": "18410:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24446,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24444,
                      "src": "18416:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24448,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24437,
                              "src": "18443:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24449,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18443:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24451,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24450,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24439,
                            "src": "18453:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18443:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24452,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24441,
                          "src": "18473:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24447,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "18434:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18434:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18416:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24455,
                  "nodeType": "ExpressionStatement",
                  "src": "18416:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 24457,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24437,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18245:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24436,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18245:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24439,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18274:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24438,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18274:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24441,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18301:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24440,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18301:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18244:80:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24444,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24457,
                  "src": "18383:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24443,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18383:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18382:25:81"
            },
            "scope": 25116,
            "src": "18227:266:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24482,
              "nodeType": "Block",
              "src": "18683:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24468,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24466,
                      "src": "18689:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24471,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24459,
                                  "src": "18728:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24472,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "18728:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24474,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24473,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24461,
                                "src": "18738:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "18728:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24476,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24463,
                                  "src": "18766:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24475,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "18758:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "18758:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24470,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "18714:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18714:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "18706:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18706:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "18689:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24481,
                  "nodeType": "ExpressionStatement",
                  "src": "18689:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 24483,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24459,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18520:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24458,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18520:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24461,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18549:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24460,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18549:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24463,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18576:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18519:79:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24466,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24483,
                  "src": "18657:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24465,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18657:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18656:24:81"
            },
            "scope": 25116,
            "src": "18497:290:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24504,
              "nodeType": "Block",
              "src": "18966:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24494,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24492,
                      "src": "18972:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24496,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24485,
                              "src": "18991:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                              }
                            },
                            "id": 24497,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22593,
                            "src": "18991:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24499,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24498,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24487,
                            "src": "19001:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18991:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24500,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24489,
                          "src": "19021:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24495,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "18986:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24501,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18986:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18972:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24503,
                  "nodeType": "ExpressionStatement",
                  "src": "18972:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 24505,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24485,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18805:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24484,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "18805:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24487,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18834:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24486,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18834:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24489,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18861:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24488,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18861:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18804:80:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24492,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24505,
                  "src": "18943:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24491,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "18943:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18942:21:81"
            },
            "scope": 25116,
            "src": "18791:250:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24530,
              "nodeType": "Block",
              "src": "19223:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24516,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24514,
                      "src": "19229:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24519,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24507,
                                  "src": "19260:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedAddress storage pointer"
                                  }
                                },
                                "id": 24520,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22593,
                                "src": "19260:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24522,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24521,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24509,
                                "src": "19270:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19260:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 24524,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24511,
                                  "src": "19298:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 24523,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19290:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 24525,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19290:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24518,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "19250:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 24526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19250:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24517,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19242:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 24527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19242:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19229:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 24529,
                  "nodeType": "ExpressionStatement",
                  "src": "19229:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 24531,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24512,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24507,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19064:27:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedAddress"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24506,
                    "name": "IndexedAddress",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22594,
                    "src": "19064:14:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedAddress_$22594_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedAddress"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24509,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19093:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24508,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19093:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24511,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19120:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24510,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19120:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19063:79:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24514,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24531,
                  "src": "19201:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24513,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19201:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19200:20:81"
            },
            "scope": 25116,
            "src": "19045:274:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24548,
              "nodeType": "Block",
              "src": "19454:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24540,
                      "name": "_item_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24538,
                      "src": "19460:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24542,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24533,
                            "src": "19479:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24543,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19479:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24544,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24535,
                          "src": "19490:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24541,
                        "name": "find",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22660,
                          23291,
                          23586,
                          23630,
                          24549
                        ],
                        "referencedDeclaration": 22660,
                        "src": "19474:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (uint256)"
                        }
                      },
                      "id": 24545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19474:22:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "19460:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24547,
                  "nodeType": "ExpressionStatement",
                  "src": "19460:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24549,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "find",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24533,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19338:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24532,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19338:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24535,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19358:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24534,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19358:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19337:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24538,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24549,
                  "src": "19431:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24537,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19431:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19430:21:81"
            },
            "scope": 25116,
            "src": "19324:177:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24566,
              "nodeType": "Block",
              "src": "19634:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24558,
                      "name": "_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24556,
                      "src": "19640:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24560,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24551,
                            "src": "19652:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24561,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19652:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24562,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24553,
                          "src": "19663:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24559,
                        "name": "get",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22693,
                          23311,
                          23606,
                          23654,
                          24567
                        ],
                        "referencedDeclaration": 22693,
                        "src": "19648:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bytes32)"
                        }
                      },
                      "id": 24563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19648:27:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19640:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24565,
                  "nodeType": "ExpressionStatement",
                  "src": "19640:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24567,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24551,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19518:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24550,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19518:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24553,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19538:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24552,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19538:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19517:41:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24556,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24567,
                  "src": "19617:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24555,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19617:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19616:15:81"
            },
            "scope": 25116,
            "src": "19505:175:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24584,
              "nodeType": "Block",
              "src": "19791:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24576,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24574,
                      "src": "19797:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24578,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24569,
                            "src": "19815:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24579,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19815:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24580,
                          "name": "_data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24571,
                          "src": "19826:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24577,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "19808:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19808:24:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19797:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24583,
                  "nodeType": "ExpressionStatement",
                  "src": "19797:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24585,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24569,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19701:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24568,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19701:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24571,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19721:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24570,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19721:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19700:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24575,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24574,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24585,
                  "src": "19774:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24573,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19774:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19773:15:81"
            },
            "scope": 25116,
            "src": "19685:152:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24602,
              "nodeType": "Block",
              "src": "19950:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24594,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24592,
                      "src": "19956:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24596,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24587,
                            "src": "19974:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24597,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "19974:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24598,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24589,
                          "src": "19985:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24595,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "19967:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19967:25:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19956:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24601,
                  "nodeType": "ExpressionStatement",
                  "src": "19956:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24603,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24587,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19857:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24586,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "19857:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24589,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19877:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24588,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19877:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19856:36:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24593,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24592,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24603,
                  "src": "19933:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24591,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19933:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19932:15:81"
            },
            "scope": 25116,
            "src": "19841:156:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24620,
              "nodeType": "Block",
              "src": "20113:51:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24612,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24610,
                      "src": "20119:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24614,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24605,
                            "src": "20142:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24615,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20142:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24616,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24607,
                          "src": "20153:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24613,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "20130:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20130:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20119:40:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24619,
                  "nodeType": "ExpressionStatement",
                  "src": "20119:40:81"
                }
              ]
            },
            "documentation": null,
            "id": 24621,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24605,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20023:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24604,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20023:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24607,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20043:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24606,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20043:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20022:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24610,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24621,
                  "src": "20096:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24609,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20096:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20095:15:81"
            },
            "scope": 25116,
            "src": "20002:162:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24635,
              "nodeType": "Block",
              "src": "20285:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24628,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24626,
                      "src": "20291:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24630,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24623,
                            "src": "20312:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24631,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20312:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24629,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "20306:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20306:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20291:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24634,
                  "nodeType": "ExpressionStatement",
                  "src": "20291:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24636,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24623,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24636,
                  "src": "20183:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24622,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20183:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20182:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24626,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24636,
                  "src": "20261:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24625,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20261:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20260:22:81"
            },
            "scope": 25116,
            "src": "20168:159:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24650,
              "nodeType": "Block",
              "src": "20442:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24643,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24641,
                      "src": "20448:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24645,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24638,
                            "src": "20463:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24646,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20463:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24644,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "20457:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20457:16:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20448:25:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24649,
                  "nodeType": "ExpressionStatement",
                  "src": "20448:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 24651,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24638,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "20346:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24637,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20346:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20345:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24641,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24651,
                  "src": "20424:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20424:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20423:16:81"
            },
            "scope": 25116,
            "src": "20331:147:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24665,
              "nodeType": "Block",
              "src": "20603:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24658,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24656,
                      "src": "20609:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24660,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24653,
                            "src": "20634:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24661,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20634:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24659,
                        "name": "start_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23036,
                          23416,
                          23783,
                          24070,
                          24349,
                          24666,
                          24933
                        ],
                        "referencedDeclaration": 23036,
                        "src": "20623:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 24662,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20623:21:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20609:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24664,
                  "nodeType": "ExpressionStatement",
                  "src": "20609:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24666,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24653,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24666,
                  "src": "20502:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24652,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20502:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20501:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24656,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24666,
                  "src": "20580:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24655,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20580:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20579:21:81"
            },
            "scope": 25116,
            "src": "20482:167:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24680,
              "nodeType": "Block",
              "src": "20763:34:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24673,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24671,
                      "src": "20769:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24675,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24668,
                            "src": "20782:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20782:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24674,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "20778:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20778:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20769:23:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24679,
                  "nodeType": "ExpressionStatement",
                  "src": "20769:23:81"
                }
              ]
            },
            "documentation": null,
            "id": 24681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24668,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24681,
                  "src": "20667:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24667,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20667:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20666:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24671,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24681,
                  "src": "20745:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24670,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20745:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20744:16:81"
            },
            "scope": 25116,
            "src": "20654:143:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24695,
              "nodeType": "Block",
              "src": "20918:42:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24688,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24686,
                      "src": "20924:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24690,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24683,
                            "src": "20945:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24691,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "20945:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24689,
                        "name": "end_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23082,
                          23448,
                          23823,
                          24102,
                          24389,
                          24696,
                          24973
                        ],
                        "referencedDeclaration": 23082,
                        "src": "20936:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 24692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20936:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "20924:31:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24694,
                  "nodeType": "ExpressionStatement",
                  "src": "20924:31:81"
                }
              ]
            },
            "documentation": null,
            "id": 24696,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24683,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24696,
                  "src": "20819:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24682,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20819:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20818:20:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24686,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24696,
                  "src": "20897:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24685,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20897:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20896:19:81"
            },
            "scope": 25116,
            "src": "20801:159:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24713,
              "nodeType": "Block",
              "src": "21091:47:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24705,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24703,
                      "src": "21097:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24707,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24698,
                            "src": "21110:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24708,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21110:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24709,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24700,
                          "src": "21121:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24706,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "21104:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21104:29:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "21097:36:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24712,
                  "nodeType": "ExpressionStatement",
                  "src": "21097:36:81"
                }
              ]
            },
            "documentation": null,
            "id": 24714,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24698,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "20979:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24697,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "20979:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24700,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "20999:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20999:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20978:41:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24704,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24703,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24714,
                  "src": "21078:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24702,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "21078:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21077:11:81"
            },
            "scope": 25116,
            "src": "20964:174:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24731,
              "nodeType": "Block",
              "src": "21268:46:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24723,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24721,
                      "src": "21274:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24725,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24716,
                            "src": "21292:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24726,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21292:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24727,
                          "name": "_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24718,
                          "src": "21303:5:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24724,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "21281:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 24728,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21281:28:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "21274:35:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24730,
                  "nodeType": "ExpressionStatement",
                  "src": "21274:35:81"
                }
              ]
            },
            "documentation": null,
            "id": 24732,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24719,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24716,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21162:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24715,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21162:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24718,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21182:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24717,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21182:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21161:35:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24722,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24721,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24732,
                  "src": "21255:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24720,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "21255:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21254:11:81"
            },
            "scope": 25116,
            "src": "21142:172:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24749,
              "nodeType": "Block",
              "src": "21465:64:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24747,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24741,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24739,
                      "src": "21471:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24743,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24734,
                            "src": "21498:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24744,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21498:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24745,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24736,
                          "src": "21509:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24742,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "21489:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21489:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21471:53:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24748,
                  "nodeType": "ExpressionStatement",
                  "src": "21471:53:81"
                }
              ]
            },
            "documentation": null,
            "id": 24750,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24734,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21336:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24733,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21336:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24736,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21356:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24735,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21356:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21335:44:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24739,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24750,
                  "src": "21438:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21437:25:81"
            },
            "scope": 25116,
            "src": "21318:211:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24767,
              "nodeType": "Block",
              "src": "21683:67:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24759,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24757,
                      "src": "21689:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24761,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24752,
                            "src": "21720:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24762,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21720:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24763,
                          "name": "_current_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24754,
                          "src": "21731:13:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24760,
                        "name": "previous_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23197,
                          23526,
                          23917,
                          24180,
                          24483,
                          24768,
                          25067
                        ],
                        "referencedDeclaration": 23197,
                        "src": "21706:13:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 24764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21706:39:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21689:56:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24766,
                  "nodeType": "ExpressionStatement",
                  "src": "21689:56:81"
                }
              ]
            },
            "documentation": null,
            "id": 24768,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24752,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21556:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24751,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21556:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24754,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21576:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24753,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21576:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21555:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24757,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24768,
                  "src": "21657:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24756,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21657:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21656:24:81"
            },
            "scope": 25116,
            "src": "21533:217:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24785,
              "nodeType": "Block",
              "src": "21893:56:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24777,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24775,
                      "src": "21899:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24779,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24770,
                            "src": "21918:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24780,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "21918:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24781,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24772,
                          "src": "21929:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24778,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "21913:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 24782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "21913:31:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21899:45:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24784,
                  "nodeType": "ExpressionStatement",
                  "src": "21899:45:81"
                }
              ]
            },
            "documentation": null,
            "id": 24786,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24773,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24770,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21768:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24769,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21768:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24772,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21788:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24771,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21788:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21767:44:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24776,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24775,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24786,
                  "src": "21870:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21870:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21869:21:81"
            },
            "scope": 25116,
            "src": "21754:195:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24803,
              "nodeType": "Block",
              "src": "22095:59:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24795,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24793,
                      "src": "22101:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 24797,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24788,
                            "src": "22124:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                              "typeString": "struct DoublyLinkedList.Bytes storage pointer"
                            }
                          },
                          "id": 24798,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22604,
                          "src": "22124:9:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24799,
                          "name": "_current_item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24790,
                          "src": "22135:13:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24796,
                        "name": "next_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23271,
                          23566,
                          23965,
                          24220,
                          24531,
                          24804,
                          25115
                        ],
                        "referencedDeclaration": 23271,
                        "src": "22114:9:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 24800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22114:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "22101:48:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24802,
                  "nodeType": "ExpressionStatement",
                  "src": "22101:48:81"
                }
              ]
            },
            "documentation": null,
            "id": 24804,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24788,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "21972:18:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24787,
                    "name": "Bytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22605,
                    "src": "21972:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                      "typeString": "struct DoublyLinkedList.Bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24790,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "21992:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24789,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21992:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21971:43:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24794,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24793,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24804,
                  "src": "22073:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22073:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22072:20:81"
            },
            "scope": 25116,
            "src": "21953:201:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24827,
              "nodeType": "Block",
              "src": "22298:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24815,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24813,
                      "src": "22304:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24817,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24806,
                              "src": "22322:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24818,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22322:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24820,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24819,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24808,
                            "src": "22332:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22322:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24822,
                              "name": "_data",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24810,
                              "src": "22360:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24821,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "22352:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22352:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24816,
                        "name": "append",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22819,
                          23331,
                          23678,
                          23985,
                          24244,
                          24585,
                          24828
                        ],
                        "referencedDeclaration": 22819,
                        "src": "22315:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24824,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22315:52:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22304:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24826,
                  "nodeType": "ExpressionStatement",
                  "src": "22304:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "append",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24806,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22174:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24805,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22174:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24808,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22201:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24807,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22201:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24810,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22228:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24809,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22228:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22173:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24813,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24828,
                  "src": "22281:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24812,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22281:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22280:15:81"
            },
            "scope": 25116,
            "src": "22158:214:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24849,
              "nodeType": "Block",
              "src": "22519:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24839,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24837,
                      "src": "22525:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24841,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24830,
                              "src": "22543:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24842,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22543:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24844,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24843,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24832,
                            "src": "22553:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22543:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24845,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24834,
                          "src": "22573:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24840,
                        "name": "remove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22937,
                          23349,
                          23700,
                          24003,
                          24266,
                          24603,
                          24850
                        ],
                        "referencedDeclaration": 22937,
                        "src": "22536:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 24846,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22536:44:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22525:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24848,
                  "nodeType": "ExpressionStatement",
                  "src": "22525:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24850,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24830,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22392:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24829,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22392:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24832,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22419:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24831,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22419:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24834,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22446:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24833,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22446:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22391:70:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24838,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24837,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24850,
                  "src": "22502:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24836,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22502:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22501:15:81"
            },
            "scope": 25116,
            "src": "22376:209:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 24873,
              "nodeType": "Block",
              "src": "22735:79:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24861,
                      "name": "_success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24859,
                      "src": "22741:8:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24863,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24852,
                              "src": "22764:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24864,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22764:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24866,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24865,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24854,
                            "src": "22774:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22764:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 24868,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24856,
                              "src": "22802:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 24867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "22794:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 24869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22794:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24862,
                        "name": "remove_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22977,
                          23369,
                          23724,
                          24023,
                          24290,
                          24621,
                          24874
                        ],
                        "referencedDeclaration": 22977,
                        "src": "22752:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) returns (bool)"
                        }
                      },
                      "id": 24870,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22752:57:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "22741:68:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24872,
                  "nodeType": "ExpressionStatement",
                  "src": "22741:68:81"
                }
              ]
            },
            "documentation": null,
            "id": 24874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24852,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22611:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24851,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22611:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24854,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22638:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24853,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22638:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24856,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22665:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24855,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22665:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22610:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24859,
                  "name": "_success",
                  "nodeType": "VariableDeclaration",
                  "scope": 24874,
                  "src": "22718:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24858,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22718:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22717:15:81"
            },
            "scope": 25116,
            "src": "22590:224:81",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24892,
              "nodeType": "Block",
              "src": "22969:61:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24883,
                      "name": "_total_count",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24881,
                      "src": "22975:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24885,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24876,
                              "src": "22996:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24886,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "22996:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24888,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24887,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24878,
                            "src": "23006:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22996:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24884,
                        "name": "total",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          22990,
                          23384,
                          23743,
                          24038,
                          24309,
                          24636,
                          24893
                        ],
                        "referencedDeclaration": 22990,
                        "src": "22990:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "22990:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "22975:50:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24891,
                  "nodeType": "ExpressionStatement",
                  "src": "22975:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 24893,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "total",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24879,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24876,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22833:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24875,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "22833:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24878,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22860:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24877,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22860:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22832:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24881,
                  "name": "_total_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 24893,
                  "src": "22945:20:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24880,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22945:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22944:22:81"
            },
            "scope": 25116,
            "src": "22818:212:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24911,
              "nodeType": "Block",
              "src": "23179:55:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24902,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24900,
                      "src": "23185:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24904,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24895,
                              "src": "23200:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24905,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "23200:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24907,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24906,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24897,
                            "src": "23210:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23200:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24903,
                        "name": "start",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23005,
                          23399,
                          23762,
                          24053,
                          24328,
                          24651,
                          24912
                        ],
                        "referencedDeclaration": 23005,
                        "src": "23194:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23194:35:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "23185:44:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24910,
                  "nodeType": "ExpressionStatement",
                  "src": "23185:44:81"
                }
              ]
            },
            "documentation": null,
            "id": 24912,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24895,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23049:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24894,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23049:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24897,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23076:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24896,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23076:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23048:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24900,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24912,
                  "src": "23161:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23161:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23160:16:81"
            },
            "scope": 25116,
            "src": "23034:200:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24932,
              "nodeType": "Block",
              "src": "23393:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24921,
                      "name": "_start_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24919,
                      "src": "23399:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24924,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24914,
                                  "src": "23432:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 24925,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "23432:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24927,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24926,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24916,
                                "src": "23442:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23432:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24923,
                            "name": "start_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23036,
                              23416,
                              23783,
                              24070,
                              24349,
                              24666,
                              24933
                            ],
                            "referencedDeclaration": 23036,
                            "src": "23421:10:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "23421:40:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "23413:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 24929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23413:49:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23399:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24931,
                  "nodeType": "ExpressionStatement",
                  "src": "23399:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 24933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "start_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24914,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23258:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24913,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23258:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24916,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23285:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24915,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23285:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23257:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24919,
                  "name": "_start_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24933,
                  "src": "23370:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24918,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23370:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23369:21:81"
            },
            "scope": 25116,
            "src": "23238:229:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24951,
              "nodeType": "Block",
              "src": "23615:53:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24942,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24940,
                      "src": "23621:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24944,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24935,
                              "src": "23634:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24945,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "23634:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24947,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24946,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24937,
                            "src": "23644:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23634:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        ],
                        "id": 24943,
                        "name": "end",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23051,
                          23431,
                          23802,
                          24085,
                          24368,
                          24681,
                          24952
                        ],
                        "referencedDeclaration": 23051,
                        "src": "23630:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 24948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23630:33:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "23621:42:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 24950,
                  "nodeType": "ExpressionStatement",
                  "src": "23621:42:81"
                }
              ]
            },
            "documentation": null,
            "id": 24952,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24935,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23485:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24934,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23485:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24937,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23512:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24936,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23512:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23484:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24940,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24952,
                  "src": "23597:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23597:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23596:16:81"
            },
            "scope": 25116,
            "src": "23472:196:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24972,
              "nodeType": "Block",
              "src": "23823:70:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24961,
                      "name": "_end_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24959,
                      "src": "23829:9:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 24964,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 24954,
                                  "src": "23858:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 24965,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "23858:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 24967,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 24966,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 24956,
                                "src": "23868:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23858:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            ],
                            "id": 24963,
                            "name": "end_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23082,
                              23448,
                              23823,
                              24102,
                              24389,
                              24696,
                              24973
                            ],
                            "referencedDeclaration": 23082,
                            "src": "23849:8:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer) view returns (bytes32)"
                            }
                          },
                          "id": 24968,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "23849:38:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 24962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "23841:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 24969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23841:47:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23829:59:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 24971,
                  "nodeType": "ExpressionStatement",
                  "src": "23829:59:81"
                }
              ]
            },
            "documentation": null,
            "id": 24973,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "end_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24957,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24954,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23690:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24953,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23690:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24956,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23717:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23717:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23689:54:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24960,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24959,
                  "name": "_end_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 24973,
                  "src": "23802:17:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23802:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23801:19:81"
            },
            "scope": 25116,
            "src": "23672:221:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 24994,
              "nodeType": "Block",
              "src": "24058:66:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 24992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 24984,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24982,
                      "src": "24064:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 24986,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24975,
                              "src": "24077:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 24987,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24077:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 24989,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 24988,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24977,
                            "src": "24087:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24077:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 24990,
                          "name": "_item_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 24979,
                          "src": "24107:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 24985,
                        "name": "valid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23099,
                          23466,
                          23845,
                          24120,
                          24411,
                          24714,
                          24995
                        ],
                        "referencedDeclaration": 23099,
                        "src": "24071:5:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 24991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24071:48:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "24064:55:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 24993,
                  "nodeType": "ExpressionStatement",
                  "src": "24064:55:81"
                }
              ]
            },
            "documentation": null,
            "id": 24995,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24975,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23912:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24974,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "23912:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24977,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23939:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24976,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23939:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24979,
                  "name": "_item_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "23966:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 24978,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23966:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23911:75:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 24983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24982,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 24995,
                  "src": "24045:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 24981,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24045:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24044:11:81"
            },
            "scope": 25116,
            "src": "23897:227:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25018,
              "nodeType": "Block",
              "src": "24288:74:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25006,
                      "name": "_yes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25004,
                      "src": "24294:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25008,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 24997,
                              "src": "24312:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25009,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24312:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25011,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25010,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24999,
                            "src": "24322:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24312:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 25013,
                              "name": "_item",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25001,
                              "src": "24350:5:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25012,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "24342:7:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": "bytes32"
                          },
                          "id": 25014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24342:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25007,
                        "name": "valid_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23123,
                          23486,
                          23869,
                          24140,
                          24435,
                          24732,
                          25019
                        ],
                        "referencedDeclaration": 23123,
                        "src": "24301:10:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 25015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24301:56:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "24294:63:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 25017,
                  "nodeType": "ExpressionStatement",
                  "src": "24294:63:81"
                }
              ]
            },
            "documentation": null,
            "id": 25019,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "valid_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24997,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24148:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 24996,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24148:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24999,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24175:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 24998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24175:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25001,
                  "name": "_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24202:13:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25000,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24202:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24147:69:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25004,
                  "name": "_yes",
                  "nodeType": "VariableDeclaration",
                  "scope": 25019,
                  "src": "24275:9:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25003,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24275:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24274:11:81"
            },
            "scope": 25116,
            "src": "24128:234:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25040,
              "nodeType": "Block",
              "src": "24547:83:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25038,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25030,
                      "name": "_previous_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25028,
                      "src": "24553:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25032,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25021,
                              "src": "24580:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25033,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "24580:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25035,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25034,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25023,
                            "src": "24590:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "24580:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 25036,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25025,
                          "src": "24610:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 25031,
                        "name": "previous",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23156,
                          23504,
                          23891,
                          24158,
                          24457,
                          24750,
                          25041
                        ],
                        "referencedDeclaration": 23156,
                        "src": "24571:8:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 25037,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24571:54:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "24553:72:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25039,
                  "nodeType": "ExpressionStatement",
                  "src": "24553:72:81"
                }
              ]
            },
            "documentation": null,
            "id": 25041,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25021,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24384:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25020,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24384:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25023,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24411:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25022,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24411:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25025,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24438:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24438:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24383:78:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25028,
                  "name": "_previous_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25041,
                  "src": "24520:23:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24520:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24519:25:81"
            },
            "scope": 25116,
            "src": "24366:264:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25066,
              "nodeType": "Block",
              "src": "24818:104:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25052,
                      "name": "_previous_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25050,
                      "src": "24824:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 25055,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25043,
                                  "src": "24863:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 25056,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "24863:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 25058,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 25057,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25045,
                                "src": "24873:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "24863:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 25060,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25047,
                                  "src": "24901:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 25059,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "24893:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 25061,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24893:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25054,
                            "name": "previous_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23197,
                              23526,
                              23917,
                              24180,
                              24483,
                              24768,
                              25067
                            ],
                            "referencedDeclaration": 23197,
                            "src": "24849:13:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 25062,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24849:67:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25053,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "24841:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 25063,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24841:76:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24824:93:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25065,
                  "nodeType": "ExpressionStatement",
                  "src": "24824:93:81"
                }
              ]
            },
            "documentation": null,
            "id": 25067,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "previous_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25048,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25043,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24657:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25042,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24657:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25045,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24684:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25044,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24684:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25047,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24711:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25046,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24711:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24656:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25050,
                  "name": "_previous_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25067,
                  "src": "24792:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25049,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24792:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24791:24:81"
            },
            "scope": 25116,
            "src": "24634:288:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25088,
              "nodeType": "Block",
              "src": "25099:75:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25078,
                      "name": "_next_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25076,
                      "src": "25105:11:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 25080,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25069,
                              "src": "25124:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                              }
                            },
                            "id": 25081,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22598,
                            "src": "25124:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                            }
                          },
                          "id": 25083,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 25082,
                            "name": "_collection_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25071,
                            "src": "25134:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "25124:28:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 25084,
                          "name": "_current_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25073,
                          "src": "25154:14:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Data_$22584_storage",
                            "typeString": "struct DoublyLinkedList.Data storage ref"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 25079,
                        "name": "next",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          23230,
                          23544,
                          23939,
                          24198,
                          24505,
                          24786,
                          25089
                        ],
                        "referencedDeclaration": 23230,
                        "src": "25119:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Data storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 25085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25119:50:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "25105:64:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 25087,
                  "nodeType": "ExpressionStatement",
                  "src": "25105:64:81"
                }
              ]
            },
            "documentation": null,
            "id": 25089,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25069,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24940:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25068,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "24940:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25071,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24967:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24967:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25073,
                  "name": "_current_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "24994:22:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25072,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24994:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24939:78:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25077,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25076,
                  "name": "_next_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25089,
                  "src": "25076:19:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25075,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "25076:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25075:21:81"
            },
            "scope": 25116,
            "src": "24926:248:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 25114,
              "nodeType": "Block",
              "src": "25354:96:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 25112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 25100,
                      "name": "_next_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25098,
                      "src": "25360:10:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 25103,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25091,
                                  "src": "25391:4:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                                    "typeString": "struct DoublyLinkedList.IndexedBytes storage pointer"
                                  }
                                },
                                "id": 25104,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22598,
                                "src": "25391:9:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Data_$22584_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Data storage ref)"
                                }
                              },
                              "id": 25106,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 25105,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25093,
                                "src": "25401:17:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "25391:28:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 25108,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25095,
                                  "src": "25429:13:81",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 25107,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "25421:7:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes32_$",
                                  "typeString": "type(bytes32)"
                                },
                                "typeName": "bytes32"
                              },
                              "id": 25109,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "25421:22:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Data_$22584_storage",
                                "typeString": "struct DoublyLinkedList.Data storage ref"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 25102,
                            "name": "next_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              23271,
                              23566,
                              23965,
                              24220,
                              24531,
                              24804,
                              25115
                            ],
                            "referencedDeclaration": 23271,
                            "src": "25381:9:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$22584_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                              "typeString": "function (struct DoublyLinkedList.Data storage pointer,bytes32) view returns (bytes32)"
                            }
                          },
                          "id": 25110,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25381:63:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 25101,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "25373:7:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": "bytes32"
                      },
                      "id": 25111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25373:72:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "25360:85:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25113,
                  "nodeType": "ExpressionStatement",
                  "src": "25360:85:81"
                }
              ]
            },
            "documentation": null,
            "id": 25115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "next_item",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25091,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25197:25:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                    "typeString": "struct DoublyLinkedList.IndexedBytes"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 25090,
                    "name": "IndexedBytes",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22599,
                    "src": "25197:12:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_IndexedBytes_$22599_storage_ptr",
                      "typeString": "struct DoublyLinkedList.IndexedBytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25093,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25224:25:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25092,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25224:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25095,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25251:21:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25251:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25196:77:81"
            },
            "payable": false,
            "returnParameters": {
              "id": 25099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25098,
                  "name": "_next_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 25115,
                  "src": "25332:18:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25097,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "25332:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "25331:20:81"
            },
            "scope": 25116,
            "src": "25178:272:81",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 25117,
        "src": "26:25428:81"
      }
    ],
    "src": "0:25455:81"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {},
      "address": "0x8045c179449f1501786a1bc68224fc49f8463d08",
      "transactionHash": "0x4d2974b016c82022fc74d7a3291e7137512cbbbe5b880c047d24b6d6446de81b"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:12.964Z"
}