{
  "contractName": "Storage",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getUIntValue",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "setUIntValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getStringValue",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setStringValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getAddressValue",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "address"
        }
      ],
      "name": "setAddressValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getBytesValue",
      "outputs": [
        {
          "name": "",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "bytes"
        }
      ],
      "name": "setBytesValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getBooleanValue",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "bool"
        }
      ],
      "name": "setBooleanValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        }
      ],
      "name": "getIntValue",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "record",
          "type": "bytes32"
        },
        {
          "name": "value",
          "type": "int256"
        }
      ],
      "name": "setIntValue",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getBooleanValue\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setUIntValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setBooleanValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getBytesValue\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getAddressValue\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setAddressValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getIntValue\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getStringValue\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"setIntValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"}],\"name\":\"getUIntValue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setBytesValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"record\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setStringValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}},\"notice\":\"Schemaless storage \"}},\"settings\":{\"compilationTarget\":{\"/C/MD/Dev/Soltsice/contracts/Storage.sol\":\"Storage\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/MD/Dev/Soltsice/contracts/Storage.sol\":{\"keccak256\":\"0x82ac6d012279a92c261f74bf7416ab4eb6a7fead984fb62175c6bfaee77a62ac\",\"urls\":[\"bzzr://c3fa87f20751c1fceae5db012f2ad99a173906c3c57fdf99be39da2b0205c44d\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xcb16adc00dcf0d75e0bdf94379f4d5a6d74dca7c74e4183b94e15721159f8a30\",\"urls\":[\"bzzr://b81e03f7203cd628cfed19255911a04a05e8670d248afb48a7b067dd03b4ff55\"]}},\"version\":1}",
  "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3610e32806100cf6000396000f3fe608060405234801561001057600080fd5b506004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900480638f32d59b116100b4578063bdc963d811610083578063bdc963d8146104d4578063c9a52d2c14610516578063f2fde38b146105db578063f58660661461061f5761011d565b80638f32d59b146103915780639007127b146103b3578063a209a29c146103f5578063a77aa49e1461049c5761011d565b80634c77e5ba116100f05780634c77e5ba146102815780635a2bf25a146102ef578063715018a61461033d5780638da5cb5b146103475761011d565b806317e7dd22146101225780633562fd20146101685780633eba9ed2146101a057806344bfa56e146101da575b600080fd5b61014e6004803603602081101561013857600080fd5b81019080803590602001909291905050506106e4565b604051808215151515815260200191505060405180910390f35b61019e6004803603604081101561017e57600080fd5b81019080803590602001909291908035906020019092919050505061070e565b005b6101d8600480360360408110156101b657600080fd5b810190808035906020019092919080351515906020019092919050505061073d565b005b610206600480360360208110156101f057600080fd5b810190808035906020019092919050505061077f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024657808201518184015260208101905061022b565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ad6004803603602081101561029757600080fd5b8101908080359060200190929190505050610834565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033b6004803603604081101561030557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610871565b005b6103456108da565b005b61034f6109ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103996109d5565b604051808215151515815260200191505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050610a2c565b6040518082815260200191505060405180910390f35b6104216004803603602081101561040b57600080fd5b8101908080359060200190929190505050610a49565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610461578082015181840152602081019050610446565b50505050905090810190601f16801561048e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d2600480360360408110156104b257600080fd5b810190808035906020019092919080359060200190929190505050610afe565b005b610500600480360360208110156104ea57600080fd5b8101908080359060200190929190505050610b2d565b6040518082815260200191505060405180910390f35b6105d96004803603604081101561052c57600080fd5b81019080803590602001909291908035906020019064010000000081111561055357600080fd5b82018360208201111561056557600080fd5b8035906020019184600183028401116401000000008311171561058757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b4a565b005b61061d600480360360208110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b89565b005b6106e26004803603604081101561063557600080fd5b81019080803590602001909291908035906020019064010000000081111561065c57600080fd5b82018360208201111561066e57600080fd5b8035906020019184600183028401116401000000008311171561069057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ba8565b005b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6107166109d5565b151561072157600080fd5b8060016000848152602001908152602001600020819055505050565b6107456109d5565b151561075057600080fd5b806005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600460008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108285780601f106107fd57610100808354040283529160200191610828565b820191906000526020600020905b81548152906001019060200180831161080b57829003601f168201915b50505050509050919050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6108796109d5565b151561088457600080fd5b806003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6108e26109d5565b15156108ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600060066000838152602001908152602001600020549050919050565b6060600260008381526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af25780601f10610ac757610100808354040283529160200191610af2565b820191906000526020600020905b815481529060010190602001808311610ad557829003601f168201915b50505050509050919050565b610b066109d5565b1515610b1157600080fd5b8060066000848152602001908152602001600020819055505050565b600060016000838152602001908152602001600020549050919050565b610b526109d5565b1515610b5d57600080fd5b80600460008481526020019081526020016000209080519060200190610b84929190610ce1565b505050565b610b916109d5565b1515610b9c57600080fd5b610ba581610be7565b50565b610bb06109d5565b1515610bbb57600080fd5b80600260008481526020019081526020016000209080519060200190610be2929190610d61565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c2357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d2257805160ff1916838001178555610d50565b82800160010185558215610d50579182015b82811115610d4f578251825591602001919060010190610d34565b5b509050610d5d9190610de1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610da257805160ff1916838001178555610dd0565b82800160010185558215610dd0579182015b82811115610dcf578251825591602001919060010190610db4565b5b509050610ddd9190610de1565b5090565b610e0391905b80821115610dff576000816000905550600101610de7565b5090565b9056fea165627a7a72305820bce74bf46ba0512046a855742d3af0df2aab4332f647665ad744b1539db03ee00029",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900480638f32d59b116100b4578063bdc963d811610083578063bdc963d8146104d4578063c9a52d2c14610516578063f2fde38b146105db578063f58660661461061f5761011d565b80638f32d59b146103915780639007127b146103b3578063a209a29c146103f5578063a77aa49e1461049c5761011d565b80634c77e5ba116100f05780634c77e5ba146102815780635a2bf25a146102ef578063715018a61461033d5780638da5cb5b146103475761011d565b806317e7dd22146101225780633562fd20146101685780633eba9ed2146101a057806344bfa56e146101da575b600080fd5b61014e6004803603602081101561013857600080fd5b81019080803590602001909291905050506106e4565b604051808215151515815260200191505060405180910390f35b61019e6004803603604081101561017e57600080fd5b81019080803590602001909291908035906020019092919050505061070e565b005b6101d8600480360360408110156101b657600080fd5b810190808035906020019092919080351515906020019092919050505061073d565b005b610206600480360360208110156101f057600080fd5b810190808035906020019092919050505061077f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024657808201518184015260208101905061022b565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ad6004803603602081101561029757600080fd5b8101908080359060200190929190505050610834565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033b6004803603604081101561030557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610871565b005b6103456108da565b005b61034f6109ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103996109d5565b604051808215151515815260200191505060405180910390f35b6103df600480360360208110156103c957600080fd5b8101908080359060200190929190505050610a2c565b6040518082815260200191505060405180910390f35b6104216004803603602081101561040b57600080fd5b8101908080359060200190929190505050610a49565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610461578082015181840152602081019050610446565b50505050905090810190601f16801561048e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d2600480360360408110156104b257600080fd5b810190808035906020019092919080359060200190929190505050610afe565b005b610500600480360360208110156104ea57600080fd5b8101908080359060200190929190505050610b2d565b6040518082815260200191505060405180910390f35b6105d96004803603604081101561052c57600080fd5b81019080803590602001909291908035906020019064010000000081111561055357600080fd5b82018360208201111561056557600080fd5b8035906020019184600183028401116401000000008311171561058757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b4a565b005b61061d600480360360208110156105f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b89565b005b6106e26004803603604081101561063557600080fd5b81019080803590602001909291908035906020019064010000000081111561065c57600080fd5b82018360208201111561066e57600080fd5b8035906020019184600183028401116401000000008311171561069057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ba8565b005b60006005600083815260200190815260200160002060009054906101000a900460ff169050919050565b6107166109d5565b151561072157600080fd5b8060016000848152602001908152602001600020819055505050565b6107456109d5565b151561075057600080fd5b806005600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600460008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108285780601f106107fd57610100808354040283529160200191610828565b820191906000526020600020905b81548152906001019060200180831161080b57829003601f168201915b50505050509050919050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6108796109d5565b151561088457600080fd5b806003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6108e26109d5565b15156108ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600060066000838152602001908152602001600020549050919050565b6060600260008381526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af25780601f10610ac757610100808354040283529160200191610af2565b820191906000526020600020905b815481529060010190602001808311610ad557829003601f168201915b50505050509050919050565b610b066109d5565b1515610b1157600080fd5b8060066000848152602001908152602001600020819055505050565b600060016000838152602001908152602001600020549050919050565b610b526109d5565b1515610b5d57600080fd5b80600460008481526020019081526020016000209080519060200190610b84929190610ce1565b505050565b610b916109d5565b1515610b9c57600080fd5b610ba581610be7565b50565b610bb06109d5565b1515610bbb57600080fd5b80600260008481526020019081526020016000209080519060200190610be2929190610d61565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610c2357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d2257805160ff1916838001178555610d50565b82800160010185558215610d50579182015b82811115610d4f578251825591602001919060010190610d34565b5b509050610d5d9190610de1565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610da257805160ff1916838001178555610dd0565b82800160010185558215610dd0579182015b82811115610dcf578251825591602001919060010190610db4565b5b509050610ddd9190610de1565b5090565b610e0391905b80821115610dff576000816000905550600101610de7565b5090565b9056fea165627a7a72305820bce74bf46ba0512046a855742d3af0df2aab4332f647665ad744b1539db03ee00029",
  "sourceMap": "116:2008:4:-;;;524:10:5;515:6;;:19;;;;;;;;;;;;;;;;;;582:6;;;;;;;;;;;549:40;;578:1;549:40;;;;;;;;;;;;116:2008:4;;;;;;",
  "deployedSourceMap": "116:2008:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:2008:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1538:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1538:136:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;334:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;334:133:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1680:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1680:137:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1207:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1207:132:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1207:132:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;871:139:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1016:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1016:140:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1423:137:5;;;:::i;:::-;;659:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;979:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1868:119:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1868:119:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;520:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;520:146:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;520:146:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1993:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1993:128:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;194:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;194:134:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1345:141;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1345:141:4;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1345:141:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1345:141:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1345:141:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1345:141:4;;;;;;;;;;;;;;;:::i;:::-;;1731:107:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1731:107:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;672:144:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;672:144:4;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;672:144:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;672:144:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;672:144:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;672:144:4;;;;;;;;;;;;;;;:::i;:::-;;1538:136;1617:4;1645:14;:22;1660:6;1645:22;;;;;;;;;;;;;;;;;;;;;1638:29;;1538:136;;;:::o;334:133::-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;455:5:4;433:11;:19;445:6;433:19;;;;;;;;;;;:27;;;;334:133;;:::o;1680:137::-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;1805:5:4;1780:14;:22;1795:6;1780:22;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1680:137;;:::o;1207:132::-;1276:12;1312;:20;1325:6;1312:20;;;;;;;;;;;1305:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1207:132;;;:::o;871:139::-;950:7;981:14;:22;996:6;981:22;;;;;;;;;;;;;;;;;;;;;974:29;;871:139;;;:::o;1016:140::-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;1144:5:4;1119:14;:22;1134:6;1119:22;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1016:140;;:::o;1423:137:5:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1521:1;1484:40;;1505:6;;;;;;;;;;;1484:40;;;;;;;;;;;;1551:1;1534:6;;:19;;;;;;;;;;;;;;;;;;1423:137::o;659:77::-;697:7;723:6;;;;;;;;;;;716:13;;659:77;:::o;979:90::-;1019:4;1056:6;;;;;;;;;;;1042:20;;:10;:20;;;1035:27;;979:90;:::o;1868:119:4:-;1940:3;1962:10;:18;1973:6;1962:18;;;;;;;;;;;;1955:25;;1868:119;;;:::o;520:146::-;606:13;638;:21;652:6;638:21;;;;;;;;;;;631:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:146;;;:::o;1993:128::-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;2109:5:4;2088:10;:18;2099:6;2088:18;;;;;;;;;;;:26;;;;1993:128;;:::o;194:134::-;278:4;302:11;:19;314:6;302:19;;;;;;;;;;;;295:26;;194:134;;;:::o;1345:141::-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;1474:5:4;1451:12;:20;1464:6;1451:20;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;1345:141;;:::o;1731:107:5:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;:28::i;:::-;1731:107;:::o;672:144:4:-;863:9:5;:7;:9::i;:::-;855:18;;;;;;;;804:5:4;780:13;:21;794:6;780:21;;;;;;;;;;;:29;;;;;;;;;;;;:::i;:::-;;672:144;;:::o;1982:183:5:-;2075:1;2055:22;;:8;:22;;;;2047:31;;;;;;;;2122:8;2093:38;;2114:6;;;;;;;;;;;2093:38;;;;;;;;;;;;2150:8;2141:6;;:17;;;;;;;;;;;;;;;;;;1982:183;:::o;116:2008:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.2;\n\nimport 'openzeppelin-solidity/contracts/ownership/Ownable.sol';\n\n/** Schemaless storage */\ncontract Storage is Ownable {\n\n    mapping(bytes32 => uint) UIntStorage;\n\n    function getUIntValue(bytes32 record) \n        public\n        view\n        returns (uint)  {\n        return UIntStorage[record];\n    }\n\n    function setUIntValue(bytes32 record, uint value) \n        public \n        onlyOwner\n    {\n        UIntStorage[record] = value;\n    }\n\n    mapping(bytes32 => string) StringStorage;\n\n    function getStringValue(bytes32 record) \n        public\n        view\n        returns (string memory) {\n        return StringStorage[record];\n    }\n\n    function setStringValue(bytes32 record, string memory value)\n        onlyOwner\n        public\n    {\n        StringStorage[record] = value;\n    }\n\n    mapping(bytes32 => address) AddressStorage;\n\n    function getAddressValue(bytes32 record) \n        public view\n        returns (address) \n    {\n        return AddressStorage[record];\n    }\n\n    function setAddressValue(bytes32 record, address value)\n        onlyOwner\n        public\n    {\n        AddressStorage[record] = value;\n    }\n\n    mapping(bytes32 => bytes) BytesStorage;\n\n    function getBytesValue(bytes32 record) \n        public view returns (bytes memory) \n    {\n        return BytesStorage[record];\n    }\n\n    function setBytesValue(bytes32 record, bytes memory value)\n        public\n        onlyOwner\n    {\n        BytesStorage[record] = value;\n    }\n\n    mapping(bytes32 => bool) BooleanStorage;\n\n    function getBooleanValue(bytes32 record) \n        public view\n        returns (bool) \n    {\n        return BooleanStorage[record];\n    }\n\n    function setBooleanValue(bytes32 record, bool value)\n        onlyOwner\n        public\n    {\n        BooleanStorage[record] = value;\n    }\n    \n    mapping(bytes32 => int) IntStorage;\n\n    function getIntValue(bytes32 record) \n        public view \n    returns (int) {\n        return IntStorage[record];\n    }\n\n    function setIntValue(bytes32 record, int value)\n        public\n        onlyOwner\n    {\n        IntStorage[record] = value;\n    }\n\n}\n\n\ncontract StorageFactory {\n    address private creator;\n    mapping(address => address) public existingStorage;\n\n    constructor() public {\n        creator = msg.sender;\n    }\n\n    function produce() \n        external\n    {\n        // protect from 'I accidentally killed it' overwrite\n        require(existingStorage[msg.sender] == address(0));\n        Storage newContract = new Storage();\n        newContract.transferOwnership(msg.sender);\n        existingStorage[msg.sender] = address(newContract);\n    }\n\n    function () \n        external\n        payable\n    {\n        address payable paddr = address(uint160(creator));\n        paddr.transfer(msg.value);\n    }\n}\n",
  "sourcePath": "C:/MD/Dev/Soltsice/contracts/Storage.sol",
  "ast": {
    "absolutePath": "/C/MD/Dev/Soltsice/contracts/Storage.sol",
    "exportedSymbols": {
      "Storage": [
        1738
      ],
      "StorageFactory": [
        1810
      ]
    },
    "id": 1811,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1542,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1543,
        "nodeType": "ImportDirective",
        "scope": 1811,
        "sourceUnit": 1920,
        "src": "25:63:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1544,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1919,
              "src": "136:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$1919",
                "typeString": "contract Ownable"
              }
            },
            "id": 1545,
            "nodeType": "InheritanceSpecifier",
            "src": "136:7:4"
          }
        ],
        "contractDependencies": [
          1919
        ],
        "contractKind": "contract",
        "documentation": "Schemaless storage ",
        "fullyImplemented": true,
        "id": 1738,
        "linearizedBaseContracts": [
          1738,
          1919
        ],
        "name": "Storage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1549,
            "name": "UIntStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "151:36:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 1548,
              "keyType": {
                "id": 1546,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "159:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "151:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 1547,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "170:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1560,
              "nodeType": "Block",
              "src": "285:43:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1556,
                      "name": "UIntStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1549,
                      "src": "302:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 1558,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1557,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1551,
                      "src": "314:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "302:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1555,
                  "id": 1559,
                  "nodeType": "Return",
                  "src": "295:26:4"
                }
              ]
            },
            "documentation": null,
            "id": 1561,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1551,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1561,
                  "src": "216:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1550,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "216:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "215:16:4"
            },
            "returnParameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1554,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1561,
                  "src": "278:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1553,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "278:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "277:6:4"
            },
            "scope": 1738,
            "src": "194:134:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "423:44:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1570,
                        "name": "UIntStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1549,
                        "src": "433:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1572,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1571,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1563,
                        "src": "445:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "433:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1573,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1565,
                      "src": "455:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "433:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "433:27:4"
                }
              ]
            },
            "documentation": null,
            "id": 1577,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1568,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1567,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "409:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "409:9:4"
              }
            ],
            "name": "setUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1563,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "356:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1562,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "356:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1565,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "372:10:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1564,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "372:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "355:28:4"
            },
            "returnParameters": {
              "id": 1569,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "423:0:4"
            },
            "scope": 1738,
            "src": "334:133:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1581,
            "name": "StringStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "473:40:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
              "typeString": "mapping(bytes32 => string)"
            },
            "typeName": {
              "id": 1580,
              "keyType": {
                "id": 1578,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "481:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "473:26:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                "typeString": "mapping(bytes32 => string)"
              },
              "valueType": {
                "id": 1579,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "492:6:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1592,
              "nodeType": "Block",
              "src": "621:45:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1588,
                      "name": "StringStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1581,
                      "src": "638:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                        "typeString": "mapping(bytes32 => string storage ref)"
                      }
                    },
                    "id": 1590,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1589,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "652:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "638:21:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 1587,
                  "id": 1591,
                  "nodeType": "Return",
                  "src": "631:28:4"
                }
              ]
            },
            "documentation": null,
            "id": 1593,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1583,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1593,
                  "src": "544:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "543:16:4"
            },
            "returnParameters": {
              "id": 1587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1586,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1593,
                  "src": "606:13:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1585,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "606:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "605:15:4"
            },
            "scope": 1738,
            "src": "520:146:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1608,
              "nodeType": "Block",
              "src": "770:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "StringStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "780:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 1604,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1603,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1595,
                        "src": "794:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "780:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1605,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1597,
                      "src": "804:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "780:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1607,
                  "nodeType": "ExpressionStatement",
                  "src": "780:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1609,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1600,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1599,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "741:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "741:9:4"
              }
            ],
            "name": "setStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1595,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1609,
                  "src": "696:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1594,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "696:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1597,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1609,
                  "src": "712:19:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1596,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "712:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "695:37:4"
            },
            "returnParameters": {
              "id": 1601,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "770:0:4"
            },
            "scope": 1738,
            "src": "672:144:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1613,
            "name": "AddressStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "822:42:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
              "typeString": "mapping(bytes32 => address)"
            },
            "typeName": {
              "id": 1612,
              "keyType": {
                "id": 1610,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "830:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "822:27:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                "typeString": "mapping(bytes32 => address)"
              },
              "valueType": {
                "id": 1611,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "841:7:4",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1624,
              "nodeType": "Block",
              "src": "964:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1620,
                      "name": "AddressStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1613,
                      "src": "981:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 1622,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1621,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1615,
                      "src": "996:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "981:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1619,
                  "id": 1623,
                  "nodeType": "Return",
                  "src": "974:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1625,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1615,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1625,
                  "src": "896:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1614,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "895:16:4"
            },
            "returnParameters": {
              "id": 1619,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1618,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1625,
                  "src": "950:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "950:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "949:9:4"
            },
            "scope": 1738,
            "src": "871:139:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1640,
              "nodeType": "Block",
              "src": "1109:47:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1634,
                        "name": "AddressStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "1119:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 1636,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1635,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1627,
                        "src": "1134:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1119:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1637,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "1144:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1119:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1639,
                  "nodeType": "ExpressionStatement",
                  "src": "1119:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 1641,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1632,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1631,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1080:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1080:9:4"
              }
            ],
            "name": "setAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1627,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1641,
                  "src": "1041:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1626,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1041:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1629,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1641,
                  "src": "1057:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1628,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1040:31:4"
            },
            "returnParameters": {
              "id": 1633,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1109:0:4"
            },
            "scope": 1738,
            "src": "1016:140:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1645,
            "name": "BytesStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1162:38:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
              "typeString": "mapping(bytes32 => bytes)"
            },
            "typeName": {
              "id": 1644,
              "keyType": {
                "id": 1642,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1170:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1162:25:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                "typeString": "mapping(bytes32 => bytes)"
              },
              "valueType": {
                "id": 1643,
                "name": "bytes",
                "nodeType": "ElementaryTypeName",
                "src": "1181:5:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1656,
              "nodeType": "Block",
              "src": "1295:44:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1652,
                      "name": "BytesStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "1312:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 1654,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1653,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1647,
                      "src": "1325:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1312:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 1651,
                  "id": 1655,
                  "nodeType": "Return",
                  "src": "1305:27:4"
                }
              ]
            },
            "documentation": null,
            "id": 1657,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1657,
                  "src": "1230:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1230:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1229:16:4"
            },
            "returnParameters": {
              "id": 1651,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1650,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1657,
                  "src": "1276:12:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1649,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1276:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1275:14:4"
            },
            "scope": 1738,
            "src": "1207:132:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1672,
              "nodeType": "Block",
              "src": "1441:45:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1666,
                        "name": "BytesStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1645,
                        "src": "1451:12:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 1668,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1667,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1659,
                        "src": "1464:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1451:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1669,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1661,
                      "src": "1474:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "1451:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 1671,
                  "nodeType": "ExpressionStatement",
                  "src": "1451:28:4"
                }
              ]
            },
            "documentation": null,
            "id": 1673,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1664,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1663,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1427:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1427:9:4"
              }
            ],
            "name": "setBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1659,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1673,
                  "src": "1368:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1368:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1673,
                  "src": "1384:18:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1367:36:4"
            },
            "returnParameters": {
              "id": 1665,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1441:0:4"
            },
            "scope": 1738,
            "src": "1345:141:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1677,
            "name": "BooleanStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1492:39:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 1676,
              "keyType": {
                "id": 1674,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1500:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1492:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 1675,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1511:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1688,
              "nodeType": "Block",
              "src": "1628:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1684,
                      "name": "BooleanStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1677,
                      "src": "1645:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                        "typeString": "mapping(bytes32 => bool)"
                      }
                    },
                    "id": 1686,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1685,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1679,
                      "src": "1660:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1645:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1683,
                  "id": 1687,
                  "nodeType": "Return",
                  "src": "1638:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1689,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBooleanValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1679,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1689,
                  "src": "1563:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1563:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1562:16:4"
            },
            "returnParameters": {
              "id": 1683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1682,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1689,
                  "src": "1617:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1681,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1617:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1616:6:4"
            },
            "scope": 1738,
            "src": "1538:136:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1704,
              "nodeType": "Block",
              "src": "1770:47:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1698,
                        "name": "BooleanStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1677,
                        "src": "1780:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 1700,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1699,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1691,
                        "src": "1795:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1780:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1701,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1693,
                      "src": "1805:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1780:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1703,
                  "nodeType": "ExpressionStatement",
                  "src": "1780:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 1705,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1696,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1695,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1741:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1741:9:4"
              }
            ],
            "name": "setBooleanValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1691,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1705,
                  "src": "1705:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1690,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1705:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1693,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1705,
                  "src": "1721:10:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1692,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1721:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1704:28:4"
            },
            "returnParameters": {
              "id": 1697,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1770:0:4"
            },
            "scope": 1738,
            "src": "1680:137:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1709,
            "name": "IntStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1827:34:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
              "typeString": "mapping(bytes32 => int256)"
            },
            "typeName": {
              "id": 1708,
              "keyType": {
                "id": 1706,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1835:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1827:23:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                "typeString": "mapping(bytes32 => int256)"
              },
              "valueType": {
                "id": 1707,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "1846:3:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1720,
              "nodeType": "Block",
              "src": "1945:42:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1716,
                      "name": "IntStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1709,
                      "src": "1962:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                        "typeString": "mapping(bytes32 => int256)"
                      }
                    },
                    "id": 1718,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1717,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1711,
                      "src": "1973:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1962:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 1715,
                  "id": 1719,
                  "nodeType": "Return",
                  "src": "1955:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1721,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1711,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1721,
                  "src": "1889:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1710,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1889:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1888:16:4"
            },
            "returnParameters": {
              "id": 1715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1714,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1721,
                  "src": "1940:3:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1713,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1940:3:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1939:5:4"
            },
            "scope": 1738,
            "src": "1868:119:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1736,
              "nodeType": "Block",
              "src": "2078:43:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1730,
                        "name": "IntStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "2088:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1732,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1731,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1723,
                        "src": "2099:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2088:18:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1733,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1725,
                      "src": "2109:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "2088:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1735,
                  "nodeType": "ExpressionStatement",
                  "src": "2088:26:4"
                }
              ]
            },
            "documentation": null,
            "id": 1737,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1728,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1727,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "2064:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2064:9:4"
              }
            ],
            "name": "setIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1726,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1723,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1737,
                  "src": "2014:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2014:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1725,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1737,
                  "src": "2030:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1724,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2030:3:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2013:27:4"
            },
            "returnParameters": {
              "id": 1729,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2078:0:4"
            },
            "scope": 1738,
            "src": "1993:128:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1811,
        "src": "116:2008:4"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1738
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1810,
        "linearizedBaseContracts": [
          1810
        ],
        "name": "StorageFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1740,
            "name": "creator",
            "nodeType": "VariableDeclaration",
            "scope": 1810,
            "src": "2157:23:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1739,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "2157:7:4",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1744,
            "name": "existingStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1810,
            "src": "2186:50:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
              "typeString": "mapping(address => address)"
            },
            "typeName": {
              "id": 1743,
              "keyType": {
                "id": 1741,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2194:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "2186:27:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                "typeString": "mapping(address => address)"
              },
              "valueType": {
                "id": 1742,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2205:7:4",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1752,
              "nodeType": "Block",
              "src": "2264:37:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1747,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1740,
                      "src": "2274:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1748,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1934,
                        "src": "2284:3:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2284:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "2274:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1751,
                  "nodeType": "ExpressionStatement",
                  "src": "2274:20:4"
                }
              ]
            },
            "documentation": null,
            "id": 1753,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2254:2:4"
            },
            "returnParameters": {
              "id": 1746,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2264:0:4"
            },
            "scope": 1810,
            "src": "2243:58:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1789,
              "nodeType": "Block",
              "src": "2348:284:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1757,
                            "name": "existingStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1744,
                            "src": "2427:15:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                              "typeString": "mapping(address => address)"
                            }
                          },
                          "id": 1760,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1758,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1934,
                              "src": "2443:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2443:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2427:27:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1762,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2466:1:4",
                              "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": 1761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2458:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2458:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "2427:41:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1756,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "2419:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2419:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1766,
                  "nodeType": "ExpressionStatement",
                  "src": "2419:50:4"
                },
                {
                  "assignments": [
                    1768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1768,
                      "name": "newContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1789,
                      "src": "2479:19:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Storage_$1738",
                        "typeString": "contract Storage"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1767,
                        "name": "Storage",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1738,
                        "src": "2479:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1772,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2501:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Storage_$1738_$",
                        "typeString": "function () returns (contract Storage)"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1769,
                        "name": "Storage",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1738,
                        "src": "2505:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      }
                    },
                    "id": 1771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2501:13:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Storage_$1738",
                      "typeString": "contract Storage"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2479:35:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1776,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2554:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2554:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1773,
                        "name": "newContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "2524:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      },
                      "id": 1775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1895,
                      "src": "2524:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2524:41:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1779,
                  "nodeType": "ExpressionStatement",
                  "src": "2524:41:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1780,
                        "name": "existingStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1744,
                        "src": "2575:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                          "typeString": "mapping(address => address)"
                        }
                      },
                      "id": 1783,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1781,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2591:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2591:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2575:27:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1785,
                          "name": "newContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1768,
                          "src": "2613:11:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Storage_$1738",
                            "typeString": "contract Storage"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Storage_$1738",
                            "typeString": "contract Storage"
                          }
                        ],
                        "id": 1784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2605:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2605:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2575:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1788,
                  "nodeType": "ExpressionStatement",
                  "src": "2575:50:4"
                }
              ]
            },
            "documentation": null,
            "id": 1790,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "produce",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1754,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2323:2:4"
            },
            "returnParameters": {
              "id": 1755,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2348:0:4"
            },
            "scope": 1810,
            "src": "2307:325:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1808,
              "nodeType": "Block",
              "src": "2688:101:4",
              "statements": [
                {
                  "assignments": [
                    1794
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1794,
                      "name": "paddr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1808,
                      "src": "2698:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      },
                      "typeName": {
                        "id": 1793,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2698:15:4",
                        "stateMutability": "payable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1800,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1797,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1740,
                            "src": "2738:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1796,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2730:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 1798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2730:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 1795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2722:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2722:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2698:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1804,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2772:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1805,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2772:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1801,
                        "name": "paddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1794,
                        "src": "2757:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 1803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2757:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2757:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1807,
                  "nodeType": "ExpressionStatement",
                  "src": "2757:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1809,
            "implemented": true,
            "kind": "fallback",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1791,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2647:2:4"
            },
            "returnParameters": {
              "id": 1792,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2688:0:4"
            },
            "scope": 1810,
            "src": "2638:151:4",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 1811,
        "src": "2127:664:4"
      }
    ],
    "src": "0:2792:4"
  },
  "legacyAST": {
    "absolutePath": "/C/MD/Dev/Soltsice/contracts/Storage.sol",
    "exportedSymbols": {
      "Storage": [
        1738
      ],
      "StorageFactory": [
        1810
      ]
    },
    "id": 1811,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1542,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1543,
        "nodeType": "ImportDirective",
        "scope": 1811,
        "sourceUnit": 1920,
        "src": "25:63:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1544,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1919,
              "src": "136:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$1919",
                "typeString": "contract Ownable"
              }
            },
            "id": 1545,
            "nodeType": "InheritanceSpecifier",
            "src": "136:7:4"
          }
        ],
        "contractDependencies": [
          1919
        ],
        "contractKind": "contract",
        "documentation": "Schemaless storage ",
        "fullyImplemented": true,
        "id": 1738,
        "linearizedBaseContracts": [
          1738,
          1919
        ],
        "name": "Storage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1549,
            "name": "UIntStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "151:36:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 1548,
              "keyType": {
                "id": 1546,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "159:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "151:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 1547,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "170:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1560,
              "nodeType": "Block",
              "src": "285:43:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1556,
                      "name": "UIntStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1549,
                      "src": "302:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 1558,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1557,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1551,
                      "src": "314:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "302:19:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1555,
                  "id": 1559,
                  "nodeType": "Return",
                  "src": "295:26:4"
                }
              ]
            },
            "documentation": null,
            "id": 1561,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1551,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1561,
                  "src": "216:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1550,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "216:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "215:16:4"
            },
            "returnParameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1554,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1561,
                  "src": "278:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1553,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "278:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "277:6:4"
            },
            "scope": 1738,
            "src": "194:134:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "423:44:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1570,
                        "name": "UIntStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1549,
                        "src": "433:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1572,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1571,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1563,
                        "src": "445:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "433:19:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1573,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1565,
                      "src": "455:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "433:27:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "433:27:4"
                }
              ]
            },
            "documentation": null,
            "id": 1577,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1568,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1567,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "409:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "409:9:4"
              }
            ],
            "name": "setUIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1563,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "356:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1562,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "356:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1565,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "372:10:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1564,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "372:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "355:28:4"
            },
            "returnParameters": {
              "id": 1569,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "423:0:4"
            },
            "scope": 1738,
            "src": "334:133:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1581,
            "name": "StringStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "473:40:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
              "typeString": "mapping(bytes32 => string)"
            },
            "typeName": {
              "id": 1580,
              "keyType": {
                "id": 1578,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "481:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "473:26:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                "typeString": "mapping(bytes32 => string)"
              },
              "valueType": {
                "id": 1579,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "492:6:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1592,
              "nodeType": "Block",
              "src": "621:45:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1588,
                      "name": "StringStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1581,
                      "src": "638:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                        "typeString": "mapping(bytes32 => string storage ref)"
                      }
                    },
                    "id": 1590,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1589,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "652:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "638:21:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 1587,
                  "id": 1591,
                  "nodeType": "Return",
                  "src": "631:28:4"
                }
              ]
            },
            "documentation": null,
            "id": 1593,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1583,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1593,
                  "src": "544:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "543:16:4"
            },
            "returnParameters": {
              "id": 1587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1586,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1593,
                  "src": "606:13:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1585,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "606:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "605:15:4"
            },
            "scope": 1738,
            "src": "520:146:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1608,
              "nodeType": "Block",
              "src": "770:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "StringStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "780:13:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$",
                          "typeString": "mapping(bytes32 => string storage ref)"
                        }
                      },
                      "id": 1604,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1603,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1595,
                        "src": "794:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "780:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1605,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1597,
                      "src": "804:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "780:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1607,
                  "nodeType": "ExpressionStatement",
                  "src": "780:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1609,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1600,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1599,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "741:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "741:9:4"
              }
            ],
            "name": "setStringValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1595,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1609,
                  "src": "696:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1594,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "696:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1597,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1609,
                  "src": "712:19:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1596,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "712:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "695:37:4"
            },
            "returnParameters": {
              "id": 1601,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "770:0:4"
            },
            "scope": 1738,
            "src": "672:144:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1613,
            "name": "AddressStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "822:42:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
              "typeString": "mapping(bytes32 => address)"
            },
            "typeName": {
              "id": 1612,
              "keyType": {
                "id": 1610,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "830:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "822:27:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                "typeString": "mapping(bytes32 => address)"
              },
              "valueType": {
                "id": 1611,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "841:7:4",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1624,
              "nodeType": "Block",
              "src": "964:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1620,
                      "name": "AddressStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1613,
                      "src": "981:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                        "typeString": "mapping(bytes32 => address)"
                      }
                    },
                    "id": 1622,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1621,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1615,
                      "src": "996:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "981:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1619,
                  "id": 1623,
                  "nodeType": "Return",
                  "src": "974:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1625,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1615,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1625,
                  "src": "896:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1614,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "895:16:4"
            },
            "returnParameters": {
              "id": 1619,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1618,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1625,
                  "src": "950:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "950:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "949:9:4"
            },
            "scope": 1738,
            "src": "871:139:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1640,
              "nodeType": "Block",
              "src": "1109:47:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1634,
                        "name": "AddressStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "1119:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 1636,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1635,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1627,
                        "src": "1134:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1119:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1637,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "1144:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1119:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1639,
                  "nodeType": "ExpressionStatement",
                  "src": "1119:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 1641,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1632,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1631,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1080:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1080:9:4"
              }
            ],
            "name": "setAddressValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1627,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1641,
                  "src": "1041:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1626,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1041:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1629,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1641,
                  "src": "1057:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1628,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1040:31:4"
            },
            "returnParameters": {
              "id": 1633,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1109:0:4"
            },
            "scope": 1738,
            "src": "1016:140:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1645,
            "name": "BytesStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1162:38:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
              "typeString": "mapping(bytes32 => bytes)"
            },
            "typeName": {
              "id": 1644,
              "keyType": {
                "id": 1642,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1170:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1162:25:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                "typeString": "mapping(bytes32 => bytes)"
              },
              "valueType": {
                "id": 1643,
                "name": "bytes",
                "nodeType": "ElementaryTypeName",
                "src": "1181:5:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1656,
              "nodeType": "Block",
              "src": "1295:44:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1652,
                      "name": "BytesStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "1312:12:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes32 => bytes storage ref)"
                      }
                    },
                    "id": 1654,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1653,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1647,
                      "src": "1325:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1312:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 1651,
                  "id": 1655,
                  "nodeType": "Return",
                  "src": "1305:27:4"
                }
              ]
            },
            "documentation": null,
            "id": 1657,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1657,
                  "src": "1230:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1230:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1229:16:4"
            },
            "returnParameters": {
              "id": 1651,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1650,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1657,
                  "src": "1276:12:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1649,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1276:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1275:14:4"
            },
            "scope": 1738,
            "src": "1207:132:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1672,
              "nodeType": "Block",
              "src": "1441:45:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1666,
                        "name": "BytesStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1645,
                        "src": "1451:12:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes32 => bytes storage ref)"
                        }
                      },
                      "id": 1668,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1667,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1659,
                        "src": "1464:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1451:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1669,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1661,
                      "src": "1474:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "1451:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 1671,
                  "nodeType": "ExpressionStatement",
                  "src": "1451:28:4"
                }
              ]
            },
            "documentation": null,
            "id": 1673,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1664,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1663,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1427:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1427:9:4"
              }
            ],
            "name": "setBytesValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1659,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1673,
                  "src": "1368:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1368:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1673,
                  "src": "1384:18:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:5:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1367:36:4"
            },
            "returnParameters": {
              "id": 1665,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1441:0:4"
            },
            "scope": 1738,
            "src": "1345:141:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1677,
            "name": "BooleanStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1492:39:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 1676,
              "keyType": {
                "id": 1674,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1500:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1492:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 1675,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1511:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1688,
              "nodeType": "Block",
              "src": "1628:46:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1684,
                      "name": "BooleanStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1677,
                      "src": "1645:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                        "typeString": "mapping(bytes32 => bool)"
                      }
                    },
                    "id": 1686,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1685,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1679,
                      "src": "1660:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1645:22:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1683,
                  "id": 1687,
                  "nodeType": "Return",
                  "src": "1638:29:4"
                }
              ]
            },
            "documentation": null,
            "id": 1689,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBooleanValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1679,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1689,
                  "src": "1563:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1563:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1562:16:4"
            },
            "returnParameters": {
              "id": 1683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1682,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1689,
                  "src": "1617:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1681,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1617:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1616:6:4"
            },
            "scope": 1738,
            "src": "1538:136:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1704,
              "nodeType": "Block",
              "src": "1770:47:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1698,
                        "name": "BooleanStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1677,
                        "src": "1780:14:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 1700,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1699,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1691,
                        "src": "1795:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1780:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1701,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1693,
                      "src": "1805:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1780:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1703,
                  "nodeType": "ExpressionStatement",
                  "src": "1780:30:4"
                }
              ]
            },
            "documentation": null,
            "id": 1705,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1696,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1695,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "1741:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1741:9:4"
              }
            ],
            "name": "setBooleanValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1691,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1705,
                  "src": "1705:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1690,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1705:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1693,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1705,
                  "src": "1721:10:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1692,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1721:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1704:28:4"
            },
            "returnParameters": {
              "id": 1697,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1770:0:4"
            },
            "scope": 1738,
            "src": "1680:137:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1709,
            "name": "IntStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1738,
            "src": "1827:34:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
              "typeString": "mapping(bytes32 => int256)"
            },
            "typeName": {
              "id": 1708,
              "keyType": {
                "id": 1706,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1835:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1827:23:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                "typeString": "mapping(bytes32 => int256)"
              },
              "valueType": {
                "id": 1707,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "1846:3:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1720,
              "nodeType": "Block",
              "src": "1945:42:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1716,
                      "name": "IntStorage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1709,
                      "src": "1962:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                        "typeString": "mapping(bytes32 => int256)"
                      }
                    },
                    "id": 1718,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1717,
                      "name": "record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1711,
                      "src": "1973:6:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1962:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 1715,
                  "id": 1719,
                  "nodeType": "Return",
                  "src": "1955:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1721,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1711,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1721,
                  "src": "1889:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1710,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1889:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1888:16:4"
            },
            "returnParameters": {
              "id": 1715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1714,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1721,
                  "src": "1940:3:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1713,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "1940:3:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1939:5:4"
            },
            "scope": 1738,
            "src": "1868:119:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1736,
              "nodeType": "Block",
              "src": "2078:43:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1730,
                        "name": "IntStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "2088:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1732,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1731,
                        "name": "record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1723,
                        "src": "2099:6:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2088:18:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1733,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1725,
                      "src": "2109:5:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "2088:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1735,
                  "nodeType": "ExpressionStatement",
                  "src": "2088:26:4"
                }
              ]
            },
            "documentation": null,
            "id": 1737,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1728,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1727,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1853,
                  "src": "2064:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2064:9:4"
              }
            ],
            "name": "setIntValue",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1726,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1723,
                  "name": "record",
                  "nodeType": "VariableDeclaration",
                  "scope": 1737,
                  "src": "2014:14:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2014:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1725,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1737,
                  "src": "2030:9:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 1724,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "2030:3:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2013:27:4"
            },
            "returnParameters": {
              "id": 1729,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2078:0:4"
            },
            "scope": 1738,
            "src": "1993:128:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1811,
        "src": "116:2008:4"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1738
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1810,
        "linearizedBaseContracts": [
          1810
        ],
        "name": "StorageFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1740,
            "name": "creator",
            "nodeType": "VariableDeclaration",
            "scope": 1810,
            "src": "2157:23:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1739,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "2157:7:4",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1744,
            "name": "existingStorage",
            "nodeType": "VariableDeclaration",
            "scope": 1810,
            "src": "2186:50:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
              "typeString": "mapping(address => address)"
            },
            "typeName": {
              "id": 1743,
              "keyType": {
                "id": 1741,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2194:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "2186:27:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                "typeString": "mapping(address => address)"
              },
              "valueType": {
                "id": 1742,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "2205:7:4",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1752,
              "nodeType": "Block",
              "src": "2264:37:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1747,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1740,
                      "src": "2274:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1748,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1934,
                        "src": "2284:3:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2284:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "2274:20:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1751,
                  "nodeType": "ExpressionStatement",
                  "src": "2274:20:4"
                }
              ]
            },
            "documentation": null,
            "id": 1753,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2254:2:4"
            },
            "returnParameters": {
              "id": 1746,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2264:0:4"
            },
            "scope": 1810,
            "src": "2243:58:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1789,
              "nodeType": "Block",
              "src": "2348:284:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1757,
                            "name": "existingStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1744,
                            "src": "2427:15:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                              "typeString": "mapping(address => address)"
                            }
                          },
                          "id": 1760,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1758,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1934,
                              "src": "2443:3:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2443:10:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2427:27:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1762,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2466:1:4",
                              "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": 1761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2458:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2458:10:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "2427:41:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1756,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "2419:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2419:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1766,
                  "nodeType": "ExpressionStatement",
                  "src": "2419:50:4"
                },
                {
                  "assignments": [
                    1768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1768,
                      "name": "newContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1789,
                      "src": "2479:19:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Storage_$1738",
                        "typeString": "contract Storage"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1767,
                        "name": "Storage",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1738,
                        "src": "2479:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1772,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2501:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Storage_$1738_$",
                        "typeString": "function () returns (contract Storage)"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1769,
                        "name": "Storage",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1738,
                        "src": "2505:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      }
                    },
                    "id": 1771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2501:13:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Storage_$1738",
                      "typeString": "contract Storage"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2479:35:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1776,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2554:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2554:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1773,
                        "name": "newContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "2524:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Storage_$1738",
                          "typeString": "contract Storage"
                        }
                      },
                      "id": 1775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1895,
                      "src": "2524:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2524:41:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1779,
                  "nodeType": "ExpressionStatement",
                  "src": "2524:41:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1780,
                        "name": "existingStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1744,
                        "src": "2575:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
                          "typeString": "mapping(address => address)"
                        }
                      },
                      "id": 1783,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1781,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2591:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2591:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2575:27:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1785,
                          "name": "newContract",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1768,
                          "src": "2613:11:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Storage_$1738",
                            "typeString": "contract Storage"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Storage_$1738",
                            "typeString": "contract Storage"
                          }
                        ],
                        "id": 1784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2605:7:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2605:20:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2575:50:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1788,
                  "nodeType": "ExpressionStatement",
                  "src": "2575:50:4"
                }
              ]
            },
            "documentation": null,
            "id": 1790,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "produce",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1754,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2323:2:4"
            },
            "returnParameters": {
              "id": 1755,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2348:0:4"
            },
            "scope": 1810,
            "src": "2307:325:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1808,
              "nodeType": "Block",
              "src": "2688:101:4",
              "statements": [
                {
                  "assignments": [
                    1794
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1794,
                      "name": "paddr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1808,
                      "src": "2698:21:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      },
                      "typeName": {
                        "id": 1793,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2698:15:4",
                        "stateMutability": "payable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1800,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1797,
                            "name": "creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1740,
                            "src": "2738:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1796,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2730:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 1798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2730:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 1795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2722:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2722:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2698:49:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1804,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1934,
                          "src": "2772:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1805,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2772:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1801,
                        "name": "paddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1794,
                        "src": "2757:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 1803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2757:14:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2757:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1807,
                  "nodeType": "ExpressionStatement",
                  "src": "2757:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1809,
            "implemented": true,
            "kind": "fallback",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1791,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2647:2:4"
            },
            "returnParameters": {
              "id": 1792,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2688:0:4"
            },
            "scope": 1810,
            "src": "2638:151:4",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 1811,
        "src": "2127:664:4"
      }
    ],
    "src": "0:2792:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.2+commit.1df8f40c.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.6",
  "updatedAt": "2019-03-31T16:08:45.204Z",
  "devdoc": {
    "methods": {
      "isOwner()": {
        "return": "true if `msg.sender` is the owner of the contract."
      },
      "owner()": {
        "return": "the address of the owner."
      },
      "renounceOwnership()": {
        "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore."
      },
      "transferOwnership(address)": {
        "details": "Allows the current owner to transfer control of the contract to a newOwner.",
        "params": {
          "newOwner": "The address to transfer ownership to."
        }
      }
    }
  },
  "userdoc": {
    "methods": {
      "renounceOwnership()": {
        "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      }
    },
    "notice": "Schemaless storage "
  }
}