{
  "contractName": "StowUsers",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "hub",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "destroy",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "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": "",
          "type": "address"
        }
      ],
      "name": "users",
      "outputs": [
        {
          "name": "exists",
          "type": "bool"
        },
        {
          "name": "registerBlocktime",
          "type": "uint256"
        },
        {
          "name": "provenance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_recipient",
          "type": "address"
        }
      ],
      "name": "destroyAndSend",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_hub",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        }
      ],
      "name": "StowUserRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "provenance",
          "type": "uint256"
        }
      ],
      "name": "StowProvenanceChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "whitelist",
          "type": "address"
        }
      ],
      "name": "StowWhitelistScoreAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "register",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "whitelist",
          "type": "address"
        },
        {
          "name": "user",
          "type": "address"
        }
      ],
      "name": "setExpertScore",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "user",
          "type": "address"
        },
        {
          "name": "provenance",
          "type": "uint256"
        }
      ],
      "name": "setProvenance",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "name": "isUser",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "name": "provenanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5060405160208061101183398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610f33806100de6000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063098e356b146100ea5780631aa3a00814610165578063365a86fc146101945780633f4ba83a146101eb5780634209fff1146102025780635c975abb1461025d5780636245eb071461028c578063715018a6146102f157806383197ef0146103085780638456cb591461031f5780638da5cb5b14610336578063a87430ba1461038d578063dbe3e92f146103f6578063f2fde38b1461044d578063f5074f4114610490575b3480156100e757600080fd5b50005b3480156100f657600080fd5b5061014b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104d3565b604051808215151515815260200191505060405180910390f35b34801561017157600080fd5b5061017a610662565b604051808215151515815260200191505060405180910390f35b3480156101a057600080fd5b506101a9610774565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f757600080fd5b5061020061079a565b005b34801561020e57600080fd5b50610243600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610858565b604051808215151515815260200191505060405180910390f35b34801561026957600080fd5b506102726108b1565b604051808215151515815260200191505060405180910390f35b34801561029857600080fd5b506102d7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156102fd57600080fd5b506103066109d4565b005b34801561031457600080fd5b5061031d610ad6565b005b34801561032b57600080fd5b50610334610b6b565b005b34801561034257600080fd5b5061034b610c2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039957600080fd5b506103ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c50565b6040518084151515158152602001838152602001828152602001935050505060405180910390f35b34801561040257600080fd5b50610437600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c87565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d32565b005b34801561049c57600080fd5b506104d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d99565b005b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663b4c28ead846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b8101908080519060200190929190505050905061061383826108c4565b508373ffffffffffffffffffffffffffffffffffffffff167fbc0a3ec34b953859ac6d146acfc7433e7a099fcb1ecfb6663c3c6e20dd973bab60405160405180910390a2600191505092915050565b60008060149054906101000a900460ff1615151561067f57600080fd5b61068833610858565b15151561069457600080fd5b6060604051908101604052806001151581526020014381526020016000815250600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155604082015181600201559050503373ffffffffffffffffffffffffffffffffffffffff167f7959d9865d8a7659933cbbc5ab0d89dc413ab56ba6d224a0d98adbf23546cd4860405160405180910390a26001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f557600080fd5b600060149054906101000a900460ff16151561081057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600060149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092157600080fd5b61092a83610858565b151561093557600080fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508273ffffffffffffffffffffffffffffffffffffffff167f0ed67a1ab2c2700cd315c37e894e7f5ca22508df7e47de1cdd9431f9a54c34cb836040518082815260200191505060405180910390a26001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b3157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc657600080fd5b600060149054906101000a900460ff16151515610be257600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154905083565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615610d2857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050610d2d565b600090505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8d57600080fd5b610d9681610e0d565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e4957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820bc7d7ae980e997ee5659bcf5a57b1bdafa21ba8ca600ed3f6c8e6d855463d6810029",
  "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063098e356b146100ea5780631aa3a00814610165578063365a86fc146101945780633f4ba83a146101eb5780634209fff1146102025780635c975abb1461025d5780636245eb071461028c578063715018a6146102f157806383197ef0146103085780638456cb591461031f5780638da5cb5b14610336578063a87430ba1461038d578063dbe3e92f146103f6578063f2fde38b1461044d578063f5074f4114610490575b3480156100e757600080fd5b50005b3480156100f657600080fd5b5061014b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104d3565b604051808215151515815260200191505060405180910390f35b34801561017157600080fd5b5061017a610662565b604051808215151515815260200191505060405180910390f35b3480156101a057600080fd5b506101a9610774565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f757600080fd5b5061020061079a565b005b34801561020e57600080fd5b50610243600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610858565b604051808215151515815260200191505060405180910390f35b34801561026957600080fd5b506102726108b1565b604051808215151515815260200191505060405180910390f35b34801561029857600080fd5b506102d7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156102fd57600080fd5b506103066109d4565b005b34801561031457600080fd5b5061031d610ad6565b005b34801561032b57600080fd5b50610334610b6b565b005b34801561034257600080fd5b5061034b610c2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039957600080fd5b506103ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c50565b6040518084151515158152602001838152602001828152602001935050505060405180910390f35b34801561040257600080fd5b50610437600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c87565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d32565b005b34801561049c57600080fd5b506104d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d99565b005b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663b4c28ead846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505050506040513d60208110156105f657600080fd5b8101908080519060200190929190505050905061061383826108c4565b508373ffffffffffffffffffffffffffffffffffffffff167fbc0a3ec34b953859ac6d146acfc7433e7a099fcb1ecfb6663c3c6e20dd973bab60405160405180910390a2600191505092915050565b60008060149054906101000a900460ff1615151561067f57600080fd5b61068833610858565b15151561069457600080fd5b6060604051908101604052806001151581526020014381526020016000815250600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155604082015181600201559050503373ffffffffffffffffffffffffffffffffffffffff167f7959d9865d8a7659933cbbc5ab0d89dc413ab56ba6d224a0d98adbf23546cd4860405160405180910390a26001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f557600080fd5b600060149054906101000a900460ff16151561081057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600060149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092157600080fd5b61092a83610858565b151561093557600080fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055508273ffffffffffffffffffffffffffffffffffffffff167f0ed67a1ab2c2700cd315c37e894e7f5ca22508df7e47de1cdd9431f9a54c34cb836040518082815260200191505060405180910390a26001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b3157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc657600080fd5b600060149054906101000a900460ff16151515610be257600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154905083565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615610d2857600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050610d2d565b600090505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8d57600080fd5b610d9681610e0d565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e4957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820bc7d7ae980e997ee5659bcf5a57b1bdafa21ba8ca600ed3f6c8e6d855463d6810029",
  "sourceMap": "280:2100:4:-;;;268:5:13;247:26;;;;;;;;;;;;;;;;;;;;698:60:4;8:9:-1;5:2;;;30:1;27;20:12;5:2;698:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:15;567:5;;:18;;;;;;;;;;;;;;;;;;747:4:4;741:3;;:10;;;;;;;;;;;;;;;;;;698:60;280:2100;;;;;;",
  "deployedSourceMap": "280:2100:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;280:2100:4;;1351:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1351:291:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;907:341;;8:9:-1;5:2;;;30:1;27;20:12;5:2;907:341:4;;;;;;;;;;;;;;;;;;;;;;;;;;;630:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;630:18:4;;;;;;;;;;;;;;;;;;;;;;;;;;;838:92:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:13;;;;;;2021:127:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2021:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:13;;;;;;;;;;;;;;;;;;;;;;;;;;;1743:272:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1743:272:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:15;;;;;;366:66:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;366:66:12;;;;;;666:90:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:13;;;;;;238:20:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:15;;;;;;;;;;;;;;;;;;;;;;;;;;;654:37:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;654:37:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2154:224:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;436:96:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;436:96:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;1351:291:4;1467:4;1487:10;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1500:9:4;:23;;;1524:4;1500:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1500:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1500:29:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1500:29:4;;;;;;;;;;;;;;;;1487:42;;1539:26;1553:4;1559:5;1539:13;:26::i;:::-;;1604:9;1580:34;;;;;;;;;;;;1631:4;1624:11;;1351:291;;;;;:::o;907:341::-;983:4;416:6:13;;;;;;;;;;;415:7;407:16;;;;;;;;1012:18:4;1019:10;1012:6;:18::i;:::-;1011:19;1003:28;;;;;;;;1061:114;;;;;;;;;1088:4;1061:114;;;;;;1125:12;1061:114;;;;1163:1;1061:114;;;1041:5;:17;1047:10;1041:17;;;;;;;;;;;;;;;:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:10;1190:30;;;;;;;;;;;;1237:4;1230:11;;907:341;:::o;630:18::-;;;;;;;;;;;;;:::o;838:92:13:-;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;568:6:13;;;;;;;;;;;560:15;;;;;;;;900:5;891:6;;:14;;;;;;;;;;;;;;;;;;916:9;;;;;;;;;;838:92::o;2021:127:4:-;2096:4;2123:5;:11;2129:4;2123:11;;;;;;;;;;;;;;;:18;;;;;;;;;;;;2116:25;;2021:127;;;:::o;247:26:13:-;;;;;;;;;;;;;:::o;1743:272:4:-;1847:4;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1875:12:4;1882:4;1875:6;:12::i;:::-;1867:21;;;;;;;;1923:10;1898:5;:11;1904:4;1898:11;;;;;;;;;;;;;;;:22;;:35;;;;1970:4;1948:39;;;1976:10;1948:39;;;;;;;;;;;;;;;;;;2004:4;1997:11;;1743:272;;;;:::o;827:111:15:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;366:66:12:-;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;421:5:12;;;;;;;;;;;408:19;;;666:90:13;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;416:6:13;;;;;;;;;;;415:7;407:16;;;;;;;;729:4;720:6;;:13;;;;;;;;;;;;;;;;;;744:7;;;;;;;;;;666:90::o;238:20:15:-;;;;;;;;;;;;;:::o;654:37:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2154:224::-;2235:4;2259:5;:11;2265:4;2259:11;;;;;;;;;;;;;;;:18;;;;;;;;;;;;2255:117;;;2300:5;:11;2306:4;2300:11;;;;;;;;;;;;;;;:22;;;2293:29;;;;2255:117;2360:1;2353:8;;2154:224;;;;:::o;1100:103:15:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;436:96:12:-;719:5:15;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;516:10:12;503:24;;;1338:171:15;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o",
  "source": "pragma solidity 0.4.24;\n\nimport \"openzeppelin-solidity/contracts/lifecycle/Destructible.sol\";\nimport \"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./StowWhitelistI.sol\";\nimport \"./StowHub.sol\";\n\n\ncontract StowUsers is Ownable, Pausable, Destructible {\n    struct User {\n        bool exists;\n        uint registerBlocktime;\n        uint provenance;\n    }\n\n    event StowUserRegistered(address indexed user);\n    event StowProvenanceChanged(address indexed user, uint provenance);\n    event StowWhitelistScoreAdded(address indexed whitelist);\n\n    StowHub public hub;\n    mapping(address => User) public users;\n\n    constructor(StowHub _hub) public {\n        hub = _hub;\n    }\n\n    /* Fallback function */\n    function () public { }\n\n    /* External functions */\n\n    // register allows any user to self register on Stow\n    function register()\n        whenNotPaused\n        external\n        returns (bool)\n    {\n        require(!isUser(msg.sender));\n        users[msg.sender] = User({\n            exists: true,\n            registerBlocktime: block.number,\n            provenance: 0\n        });\n        emit StowUserRegistered(msg.sender);\n        return true;\n    }\n\n     // setExpertScore allows admin to set the expert score of a user from a trusted third party\n    function setExpertScore(StowWhitelistI whitelist, address user)\n        onlyOwner\n        external\n        returns (bool)\n    {\n        uint score = whitelist.expertScoreOf(user);\n        setProvenance(user, score);\n        emit StowWhitelistScoreAdded(whitelist);\n        return true;\n    }\n\n    /* Public functions */\n\n     // setProvenance allows admin to set the provenance of a user\n    function setProvenance(address user, uint provenance)\n        onlyOwner\n        public\n        returns (bool)\n    {\n        require(isUser(user));\n        users[user].provenance = provenance;\n        emit StowProvenanceChanged(user, provenance);\n        return true;\n    }\n\n    function isUser(address user)\n        public\n        view\n        returns (bool)\n    {\n        return users[user].exists;\n    }\n\n    function provenanceOf(address user)\n        public\n        view\n        returns (uint)\n    {\n        if (users[user].exists) {\n            return users[user].provenance;\n        } else {\n            return 0;\n        }\n    }\n}\n",
  "sourcePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowUsers.sol",
  "ast": {
    "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowUsers.sol",
    "exportedSymbols": {
      "StowUsers": [
        1647
      ]
    },
    "id": 1648,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1462,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Destructible.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Destructible.sol",
        "id": 1463,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 1945,
        "src": "25:68:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 1464,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 2005,
        "src": "94:64:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1465,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 2185,
        "src": "159:63:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowWhitelistI.sol",
        "file": "./StowWhitelistI.sol",
        "id": 1466,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 1668,
        "src": "223:30:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowHub.sol",
        "file": "./StowHub.sol",
        "id": 1467,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 184,
        "src": "254:23:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1468,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2184,
              "src": "302:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$2184",
                "typeString": "contract Ownable"
              }
            },
            "id": 1469,
            "nodeType": "InheritanceSpecifier",
            "src": "302:7:4"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1470,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2004,
              "src": "311:8:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$2004",
                "typeString": "contract Pausable"
              }
            },
            "id": 1471,
            "nodeType": "InheritanceSpecifier",
            "src": "311:8:4"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1472,
              "name": "Destructible",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1944,
              "src": "321:12:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Destructible_$1944",
                "typeString": "contract Destructible"
              }
            },
            "id": 1473,
            "nodeType": "InheritanceSpecifier",
            "src": "321:12:4"
          }
        ],
        "contractDependencies": [
          1944,
          2004,
          2184
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1647,
        "linearizedBaseContracts": [
          1647,
          1944,
          2004,
          2184
        ],
        "name": "StowUsers",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StowUsers.User",
            "id": 1480,
            "members": [
              {
                "constant": false,
                "id": 1475,
                "name": "exists",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "362:11:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1474,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "362:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1477,
                "name": "registerBlocktime",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "383:22:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1476,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "383:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1479,
                "name": "provenance",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "415:15:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1478,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "415:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "User",
            "nodeType": "StructDefinition",
            "scope": 1647,
            "src": "340:97:4",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1484,
            "name": "StowUserRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1482,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1484,
                  "src": "468:20:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "467:22:4"
            },
            "src": "443:47:4"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1490,
            "name": "StowProvenanceChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1486,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1490,
                  "src": "523:20:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1485,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "523:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1488,
                  "indexed": false,
                  "name": "provenance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1490,
                  "src": "545:15:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1487,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "545:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "522:39:4"
            },
            "src": "495:67:4"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1494,
            "name": "StowWhitelistScoreAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1492,
                  "indexed": true,
                  "name": "whitelist",
                  "nodeType": "VariableDeclaration",
                  "scope": 1494,
                  "src": "597:25:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1491,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "596:27:4"
            },
            "src": "567:57:4"
          },
          {
            "constant": false,
            "id": 1496,
            "name": "hub",
            "nodeType": "VariableDeclaration",
            "scope": 1647,
            "src": "630:18:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_StowHub_$183",
              "typeString": "contract StowHub"
            },
            "typeName": {
              "contractScope": null,
              "id": 1495,
              "name": "StowHub",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 183,
              "src": "630:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StowHub_$183",
                "typeString": "contract StowHub"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1500,
            "name": "users",
            "nodeType": "VariableDeclaration",
            "scope": 1647,
            "src": "654:37:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
              "typeString": "mapping(address => struct StowUsers.User)"
            },
            "typeName": {
              "id": 1499,
              "keyType": {
                "id": 1497,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "662:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "654:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                "typeString": "mapping(address => struct StowUsers.User)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1498,
                "name": "User",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1480,
                "src": "673:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_User_$1480_storage_ptr",
                  "typeString": "struct StowUsers.User"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1509,
              "nodeType": "Block",
              "src": "731:27:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1505,
                      "name": "hub",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1496,
                      "src": "741:3:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_StowHub_$183",
                        "typeString": "contract StowHub"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1506,
                      "name": "_hub",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1502,
                      "src": "747:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_StowHub_$183",
                        "typeString": "contract StowHub"
                      }
                    },
                    "src": "741:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowHub_$183",
                      "typeString": "contract StowHub"
                    }
                  },
                  "id": 1508,
                  "nodeType": "ExpressionStatement",
                  "src": "741:10:4"
                }
              ]
            },
            "documentation": null,
            "id": 1510,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1502,
                  "name": "_hub",
                  "nodeType": "VariableDeclaration",
                  "scope": 1510,
                  "src": "710:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_StowHub_$183",
                    "typeString": "contract StowHub"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1501,
                    "name": "StowHub",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 183,
                    "src": "710:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowHub_$183",
                      "typeString": "contract StowHub"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "709:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1504,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "731:0:4"
            },
            "scope": 1647,
            "src": "698:60:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1513,
              "nodeType": "Block",
              "src": "811:3:4",
              "statements": []
            },
            "documentation": null,
            "id": 1514,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "801:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1512,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "811:0:4"
            },
            "scope": 1647,
            "src": "792:22:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1548,
              "nodeType": "Block",
              "src": "993:255:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1526,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1011:19:4",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1523,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2753,
                                "src": "1019:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1019:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1522,
                            "name": "isUser",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1624,
                            "src": "1012:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address) view returns (bool)"
                            }
                          },
                          "id": 1525,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1012:18:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1521,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2756,
                        2757
                      ],
                      "referencedDeclaration": 2756,
                      "src": "1003:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1003:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1528,
                  "nodeType": "ExpressionStatement",
                  "src": "1003:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1529,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "1041:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1532,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1530,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2753,
                          "src": "1047:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1047:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1041:17:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 1534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1088:4:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1535,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2743,
                            "src": "1125:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 1536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "number",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1125:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1537,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1163:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1533,
                        "name": "User",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1480,
                        "src": "1061:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_User_$1480_storage_ptr_$",
                          "typeString": "type(struct StowUsers.User storage pointer)"
                        }
                      },
                      "id": 1538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [
                        "exists",
                        "registerBlocktime",
                        "provenance"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "1061:114:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_memory",
                        "typeString": "struct StowUsers.User memory"
                      }
                    },
                    "src": "1041:134:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_User_$1480_storage",
                      "typeString": "struct StowUsers.User storage ref"
                    }
                  },
                  "id": 1540,
                  "nodeType": "ExpressionStatement",
                  "src": "1041:134:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2753,
                          "src": "1209:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1209:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1541,
                      "name": "StowUserRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1484,
                      "src": "1190:18:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1190:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1545,
                  "nodeType": "EmitStatement",
                  "src": "1185:35:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1237:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1520,
                  "id": 1547,
                  "nodeType": "Return",
                  "src": "1230:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1549,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1965,
                  "src": "935:13:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "935:13:4"
              }
            ],
            "name": "register",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1515,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1519,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1549,
                  "src": "983:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1518,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "982:6:4"
            },
            "scope": 1647,
            "src": "907:341:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1578,
              "nodeType": "Block",
              "src": "1477:165:4",
              "statements": [
                {
                  "assignments": [
                    1561
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1561,
                      "name": "score",
                      "nodeType": "VariableDeclaration",
                      "scope": 1579,
                      "src": "1487:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1560,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1487:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1566,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1564,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1553,
                        "src": "1524:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1562,
                        "name": "whitelist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1551,
                        "src": "1500:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      },
                      "id": 1563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "expertScoreOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1666,
                      "src": "1500:23:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 1565,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1500:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1487:42:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1568,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1553,
                        "src": "1553:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1569,
                        "name": "score",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1561,
                        "src": "1559:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1567,
                      "name": "setProvenance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1611,
                      "src": "1539:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 1570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1539:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1571,
                  "nodeType": "ExpressionStatement",
                  "src": "1539:26:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1573,
                        "name": "whitelist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1551,
                        "src": "1604:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      ],
                      "id": 1572,
                      "name": "StowWhitelistScoreAdded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1494,
                      "src": "1580:23:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1580:34:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "EmitStatement",
                  "src": "1575:39:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1631:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1559,
                  "id": 1577,
                  "nodeType": "Return",
                  "src": "1624:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1579,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1556,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1555,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2132,
                  "src": "1423:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1423:9:4"
              }
            ],
            "name": "setExpertScore",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1551,
                  "name": "whitelist",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1375:24:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                    "typeString": "contract StowWhitelistI"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1550,
                    "name": "StowWhitelistI",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1667,
                    "src": "1375:14:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                      "typeString": "contract StowWhitelistI"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1553,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1401:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1552,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1374:40:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1558,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1467:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1557,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1467:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1466:6:4"
            },
            "scope": 1647,
            "src": "1351:291:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "1857:158:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1592,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "1882:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1591,
                          "name": "isUser",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1624,
                          "src": "1875:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 1593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1875:12:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1590,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2756,
                        2757
                      ],
                      "referencedDeclaration": 2756,
                      "src": "1867:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1867:21:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1595,
                  "nodeType": "ExpressionStatement",
                  "src": "1867:21:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1596,
                          "name": "users",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1500,
                          "src": "1898:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                            "typeString": "mapping(address => struct StowUsers.User storage ref)"
                          }
                        },
                        "id": 1598,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1597,
                          "name": "user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1581,
                          "src": "1904:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1898:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_User_$1480_storage",
                          "typeString": "struct StowUsers.User storage ref"
                        }
                      },
                      "id": 1599,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "provenance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1479,
                      "src": "1898:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1600,
                      "name": "provenance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "1923:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1898:35:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1602,
                  "nodeType": "ExpressionStatement",
                  "src": "1898:35:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1604,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "1970:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1605,
                        "name": "provenance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1583,
                        "src": "1976:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1603,
                      "name": "StowProvenanceChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1490,
                      "src": "1948:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 1606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1948:39:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1607,
                  "nodeType": "EmitStatement",
                  "src": "1943:44:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2004:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1589,
                  "id": 1609,
                  "nodeType": "Return",
                  "src": "1997:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1611,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1586,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1585,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2132,
                  "src": "1805:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1805:9:4"
              }
            ],
            "name": "setProvenance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1581,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1766:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1580,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1766:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1583,
                  "name": "provenance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1780:15:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1780:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1765:31:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1588,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1847:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1587,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1847:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1846:6:4"
            },
            "scope": 1647,
            "src": "1743:272:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1623,
              "nodeType": "Block",
              "src": "2106:42:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1618,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "2123:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1620,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1619,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "2129:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2123:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "id": 1621,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "exists",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1475,
                    "src": "2123:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1617,
                  "id": 1622,
                  "nodeType": "Return",
                  "src": "2116:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1624,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isUser",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1624,
                  "src": "2037:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2037:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2036:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1616,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1624,
                  "src": "2096:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1615,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2095:6:4"
            },
            "scope": 1647,
            "src": "2021:127:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1645,
              "nodeType": "Block",
              "src": "2245:133:4",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1631,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "2259:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1633,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1632,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "2265:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2259:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "id": 1634,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "exists",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1475,
                    "src": "2259:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1643,
                    "nodeType": "Block",
                    "src": "2339:33:4",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2360:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 1630,
                        "id": 1642,
                        "nodeType": "Return",
                        "src": "2353:8:4"
                      }
                    ]
                  },
                  "id": 1644,
                  "nodeType": "IfStatement",
                  "src": "2255:117:4",
                  "trueBody": {
                    "id": 1640,
                    "nodeType": "Block",
                    "src": "2279:54:4",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1635,
                              "name": "users",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1500,
                              "src": "2300:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                                "typeString": "mapping(address => struct StowUsers.User storage ref)"
                              }
                            },
                            "id": 1637,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1636,
                              "name": "user",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1626,
                              "src": "2306:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2300:11:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_User_$1480_storage",
                              "typeString": "struct StowUsers.User storage ref"
                            }
                          },
                          "id": 1638,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "provenance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1479,
                          "src": "2300:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 1630,
                        "id": 1639,
                        "nodeType": "Return",
                        "src": "2293:29:4"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1646,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "provenanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1626,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1646,
                  "src": "2176:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1625,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2175:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1629,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1646,
                  "src": "2235:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1628,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2235:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2234:6:4"
            },
            "scope": 1647,
            "src": "2154:224:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1648,
        "src": "280:2100:4"
      }
    ],
    "src": "0:2381:4"
  },
  "legacyAST": {
    "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowUsers.sol",
    "exportedSymbols": {
      "StowUsers": [
        1647
      ]
    },
    "id": 1648,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1462,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Destructible.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Destructible.sol",
        "id": 1463,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 1945,
        "src": "25:68:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 1464,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 2005,
        "src": "94:64:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1465,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 2185,
        "src": "159:63:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowWhitelistI.sol",
        "file": "./StowWhitelistI.sol",
        "id": 1466,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 1668,
        "src": "223:30:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/godfreyhobbs/repo/Linnia-Smart-Contracts/contracts/StowHub.sol",
        "file": "./StowHub.sol",
        "id": 1467,
        "nodeType": "ImportDirective",
        "scope": 1648,
        "sourceUnit": 184,
        "src": "254:23:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1468,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2184,
              "src": "302:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$2184",
                "typeString": "contract Ownable"
              }
            },
            "id": 1469,
            "nodeType": "InheritanceSpecifier",
            "src": "302:7:4"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1470,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2004,
              "src": "311:8:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$2004",
                "typeString": "contract Pausable"
              }
            },
            "id": 1471,
            "nodeType": "InheritanceSpecifier",
            "src": "311:8:4"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1472,
              "name": "Destructible",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1944,
              "src": "321:12:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Destructible_$1944",
                "typeString": "contract Destructible"
              }
            },
            "id": 1473,
            "nodeType": "InheritanceSpecifier",
            "src": "321:12:4"
          }
        ],
        "contractDependencies": [
          1944,
          2004,
          2184
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1647,
        "linearizedBaseContracts": [
          1647,
          1944,
          2004,
          2184
        ],
        "name": "StowUsers",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StowUsers.User",
            "id": 1480,
            "members": [
              {
                "constant": false,
                "id": 1475,
                "name": "exists",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "362:11:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1474,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "362:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1477,
                "name": "registerBlocktime",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "383:22:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1476,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "383:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1479,
                "name": "provenance",
                "nodeType": "VariableDeclaration",
                "scope": 1480,
                "src": "415:15:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1478,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "415:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "User",
            "nodeType": "StructDefinition",
            "scope": 1647,
            "src": "340:97:4",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1484,
            "name": "StowUserRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1482,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1484,
                  "src": "468:20:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1481,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "467:22:4"
            },
            "src": "443:47:4"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1490,
            "name": "StowProvenanceChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1486,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1490,
                  "src": "523:20:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1485,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "523:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1488,
                  "indexed": false,
                  "name": "provenance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1490,
                  "src": "545:15:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1487,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "545:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "522:39:4"
            },
            "src": "495:67:4"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1494,
            "name": "StowWhitelistScoreAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1492,
                  "indexed": true,
                  "name": "whitelist",
                  "nodeType": "VariableDeclaration",
                  "scope": 1494,
                  "src": "597:25:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1491,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "596:27:4"
            },
            "src": "567:57:4"
          },
          {
            "constant": false,
            "id": 1496,
            "name": "hub",
            "nodeType": "VariableDeclaration",
            "scope": 1647,
            "src": "630:18:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_StowHub_$183",
              "typeString": "contract StowHub"
            },
            "typeName": {
              "contractScope": null,
              "id": 1495,
              "name": "StowHub",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 183,
              "src": "630:7:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StowHub_$183",
                "typeString": "contract StowHub"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1500,
            "name": "users",
            "nodeType": "VariableDeclaration",
            "scope": 1647,
            "src": "654:37:4",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
              "typeString": "mapping(address => struct StowUsers.User)"
            },
            "typeName": {
              "id": 1499,
              "keyType": {
                "id": 1497,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "662:7:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "654:24:4",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                "typeString": "mapping(address => struct StowUsers.User)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1498,
                "name": "User",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1480,
                "src": "673:4:4",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_User_$1480_storage_ptr",
                  "typeString": "struct StowUsers.User"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1509,
              "nodeType": "Block",
              "src": "731:27:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1505,
                      "name": "hub",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1496,
                      "src": "741:3:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_StowHub_$183",
                        "typeString": "contract StowHub"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1506,
                      "name": "_hub",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1502,
                      "src": "747:4:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_StowHub_$183",
                        "typeString": "contract StowHub"
                      }
                    },
                    "src": "741:10:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowHub_$183",
                      "typeString": "contract StowHub"
                    }
                  },
                  "id": 1508,
                  "nodeType": "ExpressionStatement",
                  "src": "741:10:4"
                }
              ]
            },
            "documentation": null,
            "id": 1510,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1502,
                  "name": "_hub",
                  "nodeType": "VariableDeclaration",
                  "scope": 1510,
                  "src": "710:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_StowHub_$183",
                    "typeString": "contract StowHub"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1501,
                    "name": "StowHub",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 183,
                    "src": "710:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowHub_$183",
                      "typeString": "contract StowHub"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "709:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1504,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "731:0:4"
            },
            "scope": 1647,
            "src": "698:60:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1513,
              "nodeType": "Block",
              "src": "811:3:4",
              "statements": []
            },
            "documentation": null,
            "id": 1514,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1511,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "801:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1512,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "811:0:4"
            },
            "scope": 1647,
            "src": "792:22:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1548,
              "nodeType": "Block",
              "src": "993:255:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1526,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1011:19:4",
                        "subExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1523,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2753,
                                "src": "1019:3:4",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1019:10:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1522,
                            "name": "isUser",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1624,
                            "src": "1012:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address) view returns (bool)"
                            }
                          },
                          "id": 1525,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1012:18:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1521,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2756,
                        2757
                      ],
                      "referencedDeclaration": 2756,
                      "src": "1003:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1003:28:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1528,
                  "nodeType": "ExpressionStatement",
                  "src": "1003:28:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1529,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "1041:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1532,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1530,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2753,
                          "src": "1047:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1047:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1041:17:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 1534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1088:4:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1535,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2743,
                            "src": "1125:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 1536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "number",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1125:12:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1537,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1163:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1533,
                        "name": "User",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1480,
                        "src": "1061:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_User_$1480_storage_ptr_$",
                          "typeString": "type(struct StowUsers.User storage pointer)"
                        }
                      },
                      "id": 1538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [
                        "exists",
                        "registerBlocktime",
                        "provenance"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "1061:114:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_memory",
                        "typeString": "struct StowUsers.User memory"
                      }
                    },
                    "src": "1041:134:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_User_$1480_storage",
                      "typeString": "struct StowUsers.User storage ref"
                    }
                  },
                  "id": 1540,
                  "nodeType": "ExpressionStatement",
                  "src": "1041:134:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2753,
                          "src": "1209:3:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1209:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1541,
                      "name": "StowUserRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1484,
                      "src": "1190:18:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1190:30:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1545,
                  "nodeType": "EmitStatement",
                  "src": "1185:35:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1237:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1520,
                  "id": 1547,
                  "nodeType": "Return",
                  "src": "1230:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1549,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1965,
                  "src": "935:13:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "935:13:4"
              }
            ],
            "name": "register",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1515,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:2:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1519,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1549,
                  "src": "983:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1518,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "982:6:4"
            },
            "scope": 1647,
            "src": "907:341:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1578,
              "nodeType": "Block",
              "src": "1477:165:4",
              "statements": [
                {
                  "assignments": [
                    1561
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1561,
                      "name": "score",
                      "nodeType": "VariableDeclaration",
                      "scope": 1579,
                      "src": "1487:10:4",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1560,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1487:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1566,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1564,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1553,
                        "src": "1524:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1562,
                        "name": "whitelist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1551,
                        "src": "1500:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      },
                      "id": 1563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "expertScoreOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1666,
                      "src": "1500:23:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 1565,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1500:29:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1487:42:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1568,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1553,
                        "src": "1553:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1569,
                        "name": "score",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1561,
                        "src": "1559:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1567,
                      "name": "setProvenance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1611,
                      "src": "1539:13:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (address,uint256) returns (bool)"
                      }
                    },
                    "id": 1570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1539:26:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1571,
                  "nodeType": "ExpressionStatement",
                  "src": "1539:26:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1573,
                        "name": "whitelist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1551,
                        "src": "1604:9:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                          "typeString": "contract StowWhitelistI"
                        }
                      ],
                      "id": 1572,
                      "name": "StowWhitelistScoreAdded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1494,
                      "src": "1580:23:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1580:34:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "EmitStatement",
                  "src": "1575:39:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1631:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1559,
                  "id": 1577,
                  "nodeType": "Return",
                  "src": "1624:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1579,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1556,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1555,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2132,
                  "src": "1423:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1423:9:4"
              }
            ],
            "name": "setExpertScore",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1551,
                  "name": "whitelist",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1375:24:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                    "typeString": "contract StowWhitelistI"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1550,
                    "name": "StowWhitelistI",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1667,
                    "src": "1375:14:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_StowWhitelistI_$1667",
                      "typeString": "contract StowWhitelistI"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1553,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1401:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1552,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1374:40:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1558,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1579,
                  "src": "1467:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1557,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1467:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1466:6:4"
            },
            "scope": 1647,
            "src": "1351:291:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "1857:158:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1592,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1581,
                            "src": "1882:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1591,
                          "name": "isUser",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1624,
                          "src": "1875:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 1593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1875:12:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1590,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2756,
                        2757
                      ],
                      "referencedDeclaration": 2756,
                      "src": "1867:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1867:21:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1595,
                  "nodeType": "ExpressionStatement",
                  "src": "1867:21:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1596,
                          "name": "users",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1500,
                          "src": "1898:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                            "typeString": "mapping(address => struct StowUsers.User storage ref)"
                          }
                        },
                        "id": 1598,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1597,
                          "name": "user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1581,
                          "src": "1904:4:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1898:11:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_User_$1480_storage",
                          "typeString": "struct StowUsers.User storage ref"
                        }
                      },
                      "id": 1599,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "provenance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1479,
                      "src": "1898:22:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1600,
                      "name": "provenance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "1923:10:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1898:35:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1602,
                  "nodeType": "ExpressionStatement",
                  "src": "1898:35:4"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1604,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1581,
                        "src": "1970:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1605,
                        "name": "provenance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1583,
                        "src": "1976:10:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1603,
                      "name": "StowProvenanceChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1490,
                      "src": "1948:21:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 1606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1948:39:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1607,
                  "nodeType": "EmitStatement",
                  "src": "1943:44:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2004:4:4",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1589,
                  "id": 1609,
                  "nodeType": "Return",
                  "src": "1997:11:4"
                }
              ]
            },
            "documentation": null,
            "id": 1611,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1586,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1585,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2132,
                  "src": "1805:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1805:9:4"
              }
            ],
            "name": "setProvenance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1581,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1766:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1580,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1766:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1583,
                  "name": "provenance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1780:15:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1780:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1765:31:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1588,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1847:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1587,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1847:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1846:6:4"
            },
            "scope": 1647,
            "src": "1743:272:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1623,
              "nodeType": "Block",
              "src": "2106:42:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1618,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "2123:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1620,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1619,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "2129:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2123:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "id": 1621,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "exists",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1475,
                    "src": "2123:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1617,
                  "id": 1622,
                  "nodeType": "Return",
                  "src": "2116:25:4"
                }
              ]
            },
            "documentation": null,
            "id": 1624,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isUser",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1624,
                  "src": "2037:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2037:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2036:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1616,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1624,
                  "src": "2096:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1615,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2095:6:4"
            },
            "scope": 1647,
            "src": "2021:127:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1645,
              "nodeType": "Block",
              "src": "2245:133:4",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1631,
                        "name": "users",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1500,
                        "src": "2259:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                          "typeString": "mapping(address => struct StowUsers.User storage ref)"
                        }
                      },
                      "id": 1633,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1632,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "2265:4:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2259:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_User_$1480_storage",
                        "typeString": "struct StowUsers.User storage ref"
                      }
                    },
                    "id": 1634,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "exists",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1475,
                    "src": "2259:18:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1643,
                    "nodeType": "Block",
                    "src": "2339:33:4",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2360:1:4",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 1630,
                        "id": 1642,
                        "nodeType": "Return",
                        "src": "2353:8:4"
                      }
                    ]
                  },
                  "id": 1644,
                  "nodeType": "IfStatement",
                  "src": "2255:117:4",
                  "trueBody": {
                    "id": 1640,
                    "nodeType": "Block",
                    "src": "2279:54:4",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1635,
                              "name": "users",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1500,
                              "src": "2300:5:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$1480_storage_$",
                                "typeString": "mapping(address => struct StowUsers.User storage ref)"
                              }
                            },
                            "id": 1637,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1636,
                              "name": "user",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1626,
                              "src": "2306:4:4",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2300:11:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_User_$1480_storage",
                              "typeString": "struct StowUsers.User storage ref"
                            }
                          },
                          "id": 1638,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "provenance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1479,
                          "src": "2300:22:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 1630,
                        "id": 1639,
                        "nodeType": "Return",
                        "src": "2293:29:4"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1646,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "provenanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1626,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1646,
                  "src": "2176:12:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1625,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2175:14:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1629,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1646,
                  "src": "2235:4:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1628,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2235:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2234:6:4"
            },
            "scope": 1647,
            "src": "2154:224:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1648,
        "src": "280:2100:4"
      }
    ],
    "src": "0:2381:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "3": {
      "events": {},
      "links": {},
      "address": "0x31d43830abf136b3c4a93ef96e3a6c7ea4bf8705",
      "transactionHash": "0x6a3d368e40a6b346dc6ccff8b2f48ae5d1611a8d00ad74f196ab7cf6f7c7c34d"
    },
    "5777": {
      "events": {},
      "links": {},
      "address": "0xe77e346e935e4b9f95469eab4fa4607187662460",
      "transactionHash": "0x92ffec8713cfd2ff73c2463eee9db3b9cdf5c3c8a7bed1164e3a25e15ec95edb"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-23T20:15:02.742Z"
}