{
  "contractName": "Lockable",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "removeAdmin",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "removeSelf",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "addAdmin",
      "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": "isLocked",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unlock",
      "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": "lock",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Locked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unlocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x60606040526002805460ff1916905560008054600160a060020a033316600160a060020a03199091161790556104488061003a6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c811461009d57806324d7806c146100be5780635e898dac146100f157806370480275146101045780638da5cb5b14610123578063a4e2d63414610152578063a69df4b514610165578063f2fde38b14610178578063f83d08ba14610197575b600080fd5b34156100a857600080fd5b6100bc600160a060020a03600435166101aa565b005b34156100c957600080fd5b6100dd600160a060020a03600435166101e6565b604051901515815260200160405180910390f35b34156100fc57600080fd5b6100bc610235565b341561010f57600080fd5b6100bc600160a060020a036004351661026b565b341561012e57600080fd5b6101366102ad565b604051600160a060020a03909116815260200160405180910390f35b341561015d57600080fd5b6100dd6102bc565b341561017057600080fd5b6100bc6102c5565b341561018357600080fd5b6100bc600160a060020a0360043516610322565b34156101a257600080fd5b6100bc6103bd565b60005433600160a060020a039081169116146101c557600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000600160a060020a0382161580159061022f5750600054600160a060020a038381169116148061022f5750600160a060020a03821660009081526001602052604090205460ff165b92915050565b61023e336101e6565b151561024957600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461028657600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600054600160a060020a031681565b60025460ff1690565b6102ce336101e6565b15156102d957600080fd5b60025460ff1615156102ea57600080fd5b6002805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b60005433600160a060020a0390811691161461033d57600080fd5b600160a060020a038116151561035257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103c6336101e6565b15156103d157600080fd5b60025460ff16156103e157600080fd5b6002805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a15600a165627a7a7230582062d6c5bbf06d66a8f0bd66ce7ad3ac190e0c8365dbb00246eb8c0ba2f5afa9ec0029",
  "deployedBytecode": "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c811461009d57806324d7806c146100be5780635e898dac146100f157806370480275146101045780638da5cb5b14610123578063a4e2d63414610152578063a69df4b514610165578063f2fde38b14610178578063f83d08ba14610197575b600080fd5b34156100a857600080fd5b6100bc600160a060020a03600435166101aa565b005b34156100c957600080fd5b6100dd600160a060020a03600435166101e6565b604051901515815260200160405180910390f35b34156100fc57600080fd5b6100bc610235565b341561010f57600080fd5b6100bc600160a060020a036004351661026b565b341561012e57600080fd5b6101366102ad565b604051600160a060020a03909116815260200160405180910390f35b341561015d57600080fd5b6100dd6102bc565b341561017057600080fd5b6100bc6102c5565b341561018357600080fd5b6100bc600160a060020a0360043516610322565b34156101a257600080fd5b6100bc6103bd565b60005433600160a060020a039081169116146101c557600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000600160a060020a0382161580159061022f5750600054600160a060020a038381169116148061022f5750600160a060020a03821660009081526001602052604090205460ff165b92915050565b61023e336101e6565b151561024957600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461028657600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600054600160a060020a031681565b60025460ff1690565b6102ce336101e6565b15156102d957600080fd5b60025460ff1615156102ea57600080fd5b6002805460ff191690557f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd660405160405180910390a1565b60005433600160a060020a0390811691161461033d57600080fd5b600160a060020a038116151561035257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6103c6336101e6565b15156103d157600080fd5b60025460ff16156103e157600080fd5b6002805460ff191660011790557f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b60405160405180910390a15600a165627a7a7230582062d6c5bbf06d66a8f0bd66ce7ad3ac190e0c8365dbb00246eb8c0ba2f5afa9ec0029",
  "sourceMap": "1103:531:16:-;;;1183:22;;;-1:-1:-1;;1183:22:16;;;1200:5;494:18:21;;-1:-1:-1;;;;;502:10:21;494:18;-1:-1:-1;;;;;;494:18:21;;;;;;1103:531:16;;;;;;",
  "deployedSourceMap": "1103:531:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:95:0;;;;;;;;;;-1:-1:-1;;;;;1460:95:0;;;;;;;1212:145;;;;;;;;;;-1:-1:-1;;;;;1212:145:0;;;;;;;;;;;;;;;;;;;;;;1561:84;;;;;;;;;;;;1363:91;;;;;;;;;;-1:-1:-1;;;;;1363:91:0;;;;;238:20:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:21;;;;;;;;;;;;;;1355:84:16;;;;;;;;;;;;1540:92;;;;;;;;;;;;827:169:21;;;;;;;;;;-1:-1:-1;;;;;827:169:21;;;;;1445:89:16;;;;;;;;;;;;1460:95:0;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1522:18:0;1543:5;1522:18;;;:12;:18;;;;;:26;;-1:-1:-1;;1522:26:0;;;1460:95::o;1212:145::-;1268:4;-1:-1:-1;;;;;1291:18:0;;;;;;:59;;-1:-1:-1;1322:5:0;;-1:-1:-1;;;;;1314:13:0;;;1322:5;;1314:13;;:35;;-1:-1:-1;;;;;;1331:18:0;;;;;;:12;:18;;;;;;;;1314:35;1284:66;1212:145;-1:-1:-1;;1212:145:0:o;1561:84::-;1168:19;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1619:10:0;1606:24;1633:5;1606:24;;;:12;:24;;;;;:32;;-1:-1:-1;;1606:32:0;;;1561:84::o;1363:91::-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1422:18:0;;;;;1443:4;1422:18;;;;;;;;:25;;-1:-1:-1;;1422:25:0;;;;;;1363:91::o;238:20:21:-;;;-1:-1:-1;;;;;238:20:21;;:::o;1355:84:16:-;1423:9;;;;1355:84;:::o;1540:92::-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1248:9:16;;;;1240:18;;;;;;;;1588:9;:17;;-1:-1:-1;;1588:17:16;;;1615:10;;;;;;;;;;1540:92::o;827:169:21:-;647:5;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;903:22:21;;;;895:31;;;;;;953:5;;-1:-1:-1;;;;;932:37:21;;;;953:5;932:37;;;;;;;;;;975:5;:16;;-1:-1:-1;;975:16:21;-1:-1:-1;;;;;975:16:21;;;;;;;;;;827:169::o;1445:89:16:-;1168:19:0;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;1321:9:16;;;;1320:10;1312:19;;;;;;1493:9;:16;;-1:-1:-1;;1493:16:16;1505:4;1493:16;;;1519:8;;;;;;;;;;1445:89::o",
  "source": "// ------------------------------------------------------------------------------\n// This file is part of netvote.\n//\n// netvote is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// netvote is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with solidity.  If not, see <http://www.gnu.org/licenses/>\n//\n// (c) 2017 netvote contributors.\n//------------------------------------------------------------------------------\n\npragma solidity ^0.4.17;\n\nimport \"../auth/Adminable.sol\";\n\n\n/**\n * @title Lockable\n * @dev This safety feature allows one to globally lock a contract to prevent abuse\n * This is used by state machines to confirm the current state.\n */\ncontract Lockable is Adminable {\n    event Locked();\n    event Unlocked();\n\n    bool lockState = false;\n\n    modifier locked() {\n        require(lockState);\n        _;\n    }\n\n    modifier unlocked() {\n        require(!lockState);\n        _;\n    }\n\n    function isLocked() public constant returns (bool) {\n        return lockState;\n    }\n\n    function lock() public admin unlocked {\n        lockState = true;\n        Locked();\n    }\n\n    function unlock() public admin locked {\n        lockState = false;\n        Unlocked();\n    }\n}",
  "sourcePath": "/Users/slanders/netvote/elections-solidity/contracts/state/Lockable.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/state/Lockable.sol",
      "exportedSymbols": {
        "Lockable": [
          2197
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".17"
          ]
        },
        "id": 2131,
        "name": "PragmaDirective",
        "src": "868:24:16"
      },
      {
        "attributes": {
          "SourceUnit": 85,
          "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/auth/Adminable.sol",
          "file": "../auth/Adminable.sol",
          "scope": 2198,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2132,
        "name": "ImportDirective",
        "src": "894:31:16"
      },
      {
        "attributes": {
          "contractDependencies": [
            84,
            2703
          ],
          "contractKind": "contract",
          "documentation": "@title Lockable\n@dev This safety feature allows one to globally lock a contract to prevent abuse\nThis is used by state machines to confirm the current state.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            2197,
            84,
            2703
          ],
          "name": "Lockable",
          "scope": 2198
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Adminable",
                  "referencedDeclaration": 84,
                  "type": "contract Adminable"
                },
                "id": 2133,
                "name": "UserDefinedTypeName",
                "src": "1124:9:16"
              }
            ],
            "id": 2134,
            "name": "InheritanceSpecifier",
            "src": "1124:9:16"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Locked"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2135,
                "name": "ParameterList",
                "src": "1152:2:16"
              }
            ],
            "id": 2136,
            "name": "EventDefinition",
            "src": "1140:15:16"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "Unlocked"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2137,
                "name": "ParameterList",
                "src": "1174:2:16"
              }
            ],
            "id": 2138,
            "name": "EventDefinition",
            "src": "1160:17:16"
          },
          {
            "attributes": {
              "constant": false,
              "name": "lockState",
              "scope": 2197,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bool",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bool",
                  "type": "bool"
                },
                "id": 2139,
                "name": "ElementaryTypeName",
                "src": "1183:4:16"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "66616c7365",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "bool",
                  "type": "bool",
                  "value": "false"
                },
                "id": 2140,
                "name": "Literal",
                "src": "1200:5:16"
              }
            ],
            "id": 2141,
            "name": "VariableDeclaration",
            "src": "1183:22:16"
          },
          {
            "attributes": {
              "name": "locked",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2142,
                "name": "ParameterList",
                "src": "1227:2:16"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3241,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2143,
                            "name": "Identifier",
                            "src": "1240:7:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2141,
                              "type": "bool",
                              "value": "lockState"
                            },
                            "id": 2144,
                            "name": "Identifier",
                            "src": "1248:9:16"
                          }
                        ],
                        "id": 2145,
                        "name": "FunctionCall",
                        "src": "1240:18:16"
                      }
                    ],
                    "id": 2146,
                    "name": "ExpressionStatement",
                    "src": "1240:18:16"
                  },
                  {
                    "id": 2147,
                    "name": "PlaceholderStatement",
                    "src": "1268:1:16"
                  }
                ],
                "id": 2148,
                "name": "Block",
                "src": "1230:46:16"
              }
            ],
            "id": 2149,
            "name": "ModifierDefinition",
            "src": "1212:64:16"
          },
          {
            "attributes": {
              "name": "unlocked",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2150,
                "name": "ParameterList",
                "src": "1299:2:16"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 3241,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 2151,
                            "name": "Identifier",
                            "src": "1312:7:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 2141,
                                  "type": "bool",
                                  "value": "lockState"
                                },
                                "id": 2152,
                                "name": "Identifier",
                                "src": "1321:9:16"
                              }
                            ],
                            "id": 2153,
                            "name": "UnaryOperation",
                            "src": "1320:10:16"
                          }
                        ],
                        "id": 2154,
                        "name": "FunctionCall",
                        "src": "1312:19:16"
                      }
                    ],
                    "id": 2155,
                    "name": "ExpressionStatement",
                    "src": "1312:19:16"
                  },
                  {
                    "id": 2156,
                    "name": "PlaceholderStatement",
                    "src": "1341:1:16"
                  }
                ],
                "id": 2157,
                "name": "Block",
                "src": "1302:47:16"
              }
            ],
            "id": 2158,
            "name": "ModifierDefinition",
            "src": "1282:67:16"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isLocked",
              "payable": false,
              "scope": 2197,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2159,
                "name": "ParameterList",
                "src": "1372:2:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2166,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2160,
                        "name": "ElementaryTypeName",
                        "src": "1400:4:16"
                      }
                    ],
                    "id": 2161,
                    "name": "VariableDeclaration",
                    "src": "1400:4:16"
                  }
                ],
                "id": 2162,
                "name": "ParameterList",
                "src": "1399:6:16"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 2162
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 2141,
                          "type": "bool",
                          "value": "lockState"
                        },
                        "id": 2163,
                        "name": "Identifier",
                        "src": "1423:9:16"
                      }
                    ],
                    "id": 2164,
                    "name": "Return",
                    "src": "1416:16:16"
                  }
                ],
                "id": 2165,
                "name": "Block",
                "src": "1406:33:16"
              }
            ],
            "id": 2166,
            "name": "FunctionDefinition",
            "src": "1355:84:16"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "lock",
              "payable": false,
              "scope": 2197,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2167,
                "name": "ParameterList",
                "src": "1458:2:16"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2172,
                "name": "ParameterList",
                "src": "1483:0:16"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 19,
                      "type": "modifier ()",
                      "value": "admin"
                    },
                    "id": 2168,
                    "name": "Identifier",
                    "src": "1468:5:16"
                  }
                ],
                "id": 2169,
                "name": "ModifierInvocation",
                "src": "1468:5:16"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2158,
                      "type": "modifier ()",
                      "value": "unlocked"
                    },
                    "id": 2170,
                    "name": "Identifier",
                    "src": "1474:8:16"
                  }
                ],
                "id": 2171,
                "name": "ModifierInvocation",
                "src": "1474:8:16"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2141,
                              "type": "bool",
                              "value": "lockState"
                            },
                            "id": 2173,
                            "name": "Identifier",
                            "src": "1493:9:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 2174,
                            "name": "Literal",
                            "src": "1505:4:16"
                          }
                        ],
                        "id": 2175,
                        "name": "Assignment",
                        "src": "1493:16:16"
                      }
                    ],
                    "id": 2176,
                    "name": "ExpressionStatement",
                    "src": "1493:16:16"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2136,
                              "type": "function ()",
                              "value": "Locked"
                            },
                            "id": 2177,
                            "name": "Identifier",
                            "src": "1519:6:16"
                          }
                        ],
                        "id": 2178,
                        "name": "FunctionCall",
                        "src": "1519:8:16"
                      }
                    ],
                    "id": 2179,
                    "name": "ExpressionStatement",
                    "src": "1519:8:16"
                  }
                ],
                "id": 2180,
                "name": "Block",
                "src": "1483:51:16"
              }
            ],
            "id": 2181,
            "name": "FunctionDefinition",
            "src": "1445:89:16"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "unlock",
              "payable": false,
              "scope": 2197,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2182,
                "name": "ParameterList",
                "src": "1555:2:16"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2187,
                "name": "ParameterList",
                "src": "1578:0:16"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 19,
                      "type": "modifier ()",
                      "value": "admin"
                    },
                    "id": 2183,
                    "name": "Identifier",
                    "src": "1565:5:16"
                  }
                ],
                "id": 2184,
                "name": "ModifierInvocation",
                "src": "1565:5:16"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 2149,
                      "type": "modifier ()",
                      "value": "locked"
                    },
                    "id": 2185,
                    "name": "Identifier",
                    "src": "1571:6:16"
                  }
                ],
                "id": 2186,
                "name": "ModifierInvocation",
                "src": "1571:6:16"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2141,
                              "type": "bool",
                              "value": "lockState"
                            },
                            "id": 2188,
                            "name": "Identifier",
                            "src": "1588:9:16"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 2189,
                            "name": "Literal",
                            "src": "1600:5:16"
                          }
                        ],
                        "id": 2190,
                        "name": "Assignment",
                        "src": "1588:17:16"
                      }
                    ],
                    "id": 2191,
                    "name": "ExpressionStatement",
                    "src": "1588:17:16"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 2138,
                              "type": "function ()",
                              "value": "Unlocked"
                            },
                            "id": 2192,
                            "name": "Identifier",
                            "src": "1615:8:16"
                          }
                        ],
                        "id": 2193,
                        "name": "FunctionCall",
                        "src": "1615:10:16"
                      }
                    ],
                    "id": 2194,
                    "name": "ExpressionStatement",
                    "src": "1615:10:16"
                  }
                ],
                "id": 2195,
                "name": "Block",
                "src": "1578:54:16"
              }
            ],
            "id": 2196,
            "name": "FunctionDefinition",
            "src": "1540:92:16"
          }
        ],
        "id": 2197,
        "name": "ContractDefinition",
        "src": "1103:531:16"
      }
    ],
    "id": 2198,
    "name": "SourceUnit",
    "src": "868:766:16"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-26T15:46:12.479Z"
}