{
    "schemaVersion": "2.0.0",
    "contractName": "EventEmitter",
    "compilerOutput": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    {
                        "internalType": "string",
                        "name": "eventType",
                        "type": "string"
                    },
                    {
                        "internalType": "bytes32[]",
                        "name": "data",
                        "type": "bytes32[]"
                    },
                    {
                        "internalType": "string",
                        "name": "stringData",
                        "type": "string"
                    }
                ],
                "name": "emitEvent",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "inputs": [
                    {
                        "internalType": "address",
                        "name": "auth",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": false,
                        "internalType": "string",
                        "name": "eventType",
                        "type": "string"
                    },
                    {
                        "indexed": false,
                        "internalType": "bytes32[]",
                        "name": "data",
                        "type": "bytes32[]"
                    },
                    {
                        "indexed": false,
                        "internalType": "string",
                        "name": "stringData",
                        "type": "string"
                    }
                ],
                "name": "KosuEvent",
                "type": "event"
            }
        ],
        "devdoc": {
            "author": "Freydal",
            "details": "A central event emitting contract supporting the Kosu contract system.",
            "methods": {
                "constructor": {
                    "details": "Event emitter instantiated with Authorizable.",
                    "params": {
                        "auth": "AuthorizedAddresses deployed address."
                    }
                },
                "emitEvent(string,bytes32[],string)": {
                    "details": "Emits a standard event from the Kosu contract system.  The events can be decoded though the Kosu.js library.",
                    "params": {
                        "data": "Bytes32 encoded data to be emitted.",
                        "eventType": "String name/type of event.",
                        "stringData": "String containing optional additional information."
                    }
                }
            },
            "title": "EventEmitter"
        },
        "evm": {
            "bytecode": {
                "linkReferences": {},
                "object": "0x608060405234801561001057600080fd5b5060405161035b38038061035b8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102f6806100656000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806354309e0d14610030575b600080fd5b6101446004803603606081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460208302840111640100000000831117156100e757600080fd5b91939092909160208101903564010000000081111561010557600080fd5b82018360208201111561011757600080fd5b8035906020019184600183028401116401000000008311171561013957600080fd5b509092509050610146565b005b600054604080516333b4fee760e21b815233600482015290516001600160a01b039092169163ced3fb9c91602480820192602092909190829003018186803b15801561019157600080fd5b505afa1580156101a5573d6000803e3d6000fd5b505050506040513d60208110156101bb57600080fd5b50516101fd576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b7fbd647e9e2eef172f3fdec76835829a24fa85b28c6d74c716e7e8a5c87ebfc6838686868686866040518080602001806020018060200184810384528a8a82818152602001925080828437600083820152601f01601f19169091018581038452888152602090810191508990890280828437600083820152601f01601f191690910185810383528681526020019050868680828437600083820152604051601f909101601f19169092018290039b50909950505050505050505050a150505050505056fea265627a7a72315820d1bd3b3c5c93d026ce84cf667cd2a6d1e4c30c7a3ee72d7e7184d0b922820f2b64736f6c634300050b0032",
                "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x35B CODESIZE SUB DUP1 PUSH2 0x35B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2F6 DUP1 PUSH2 0x65 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54309E0D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x144 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH1 0x20 DUP2 ADD SWAP1 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH1 0x20 DUP2 ADD SWAP1 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x146 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x33B4FEE7 PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xCED3FB9C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1D5B985D5D1A1BDC9A5E9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0xBD647E9E2EEF172F3FDEC76835829A24FA85B28C6D74C716E7E8A5C87EBFC683 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 SUB DUP5 MSTORE DUP11 DUP11 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD DUP6 DUP2 SUB DUP5 MSTORE DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP10 SWAP1 DUP10 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD DUP6 DUP2 SUB DUP4 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 POP DUP7 DUP7 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 MLOAD PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD DUP3 SWAP1 SUB SWAP12 POP SWAP1 SWAP10 POP POP POP POP POP POP POP POP POP POP LOG1 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xd1 0xbd EXTCODESIZE EXTCODECOPY 0x5c SWAP4 0xd0 0x26 0xce DUP5 0xcf PUSH7 0x7CD2A6D1E4C30C PUSH27 0x3EE72D7E7184D0B922820F2B64736F6C634300050B003200000000 ",
                "sourceMap": "188:1019:6:-;;;520:59;8:9:-1;5:2;;;30:1;27;20:12;5:2;520:59:6;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;520:59:6;651:17:5;:67;;-1:-1:-1;;;;;651:67:5;;;-1:-1:-1;;;;;;651:67:5;;;;;;;;;188:1019:6;;;;;;"
            },
            "deployedBytecode": {
                "linkReferences": {},
                "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806354309e0d14610030575b600080fd5b6101446004803603606081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9193909290916020810190356401000000008111156100b357600080fd5b8201836020820111156100c557600080fd5b803590602001918460208302840111640100000000831117156100e757600080fd5b91939092909160208101903564010000000081111561010557600080fd5b82018360208201111561011757600080fd5b8035906020019184600183028401116401000000008311171561013957600080fd5b509092509050610146565b005b600054604080516333b4fee760e21b815233600482015290516001600160a01b039092169163ced3fb9c91602480820192602092909190829003018186803b15801561019157600080fd5b505afa1580156101a5573d6000803e3d6000fd5b505050506040513d60208110156101bb57600080fd5b50516101fd576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b7fbd647e9e2eef172f3fdec76835829a24fa85b28c6d74c716e7e8a5c87ebfc6838686868686866040518080602001806020018060200184810384528a8a82818152602001925080828437600083820152601f01601f19169091018581038452888152602090810191508990890280828437600083820152601f01601f191690910185810383528681526020019050868680828437600083820152604051601f909101601f19169092018290039b50909950505050505050505050a150505050505056fea265627a7a72315820d1bd3b3c5c93d026ce84cf667cd2a6d1e4c30c7a3ee72d7e7184d0b922820f2b64736f6c634300050b0032",
                "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54309E0D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x144 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH1 0x20 DUP2 ADD SWAP1 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH1 0x20 DUP2 ADD SWAP1 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x146 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x33B4FEE7 PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xCED3FB9C SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH2 0x1FD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1D5B985D5D1A1BDC9A5E9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH32 0xBD647E9E2EEF172F3FDEC76835829A24FA85B28C6D74C716E7E8A5C87EBFC683 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP5 DUP2 SUB DUP5 MSTORE DUP11 DUP11 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD DUP6 DUP2 SUB DUP5 MSTORE DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP10 SWAP1 DUP10 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD DUP6 DUP2 SUB DUP4 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 POP DUP7 DUP7 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD MSTORE PUSH1 0x40 MLOAD PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD DUP3 SWAP1 SUB SWAP12 POP SWAP1 SWAP10 POP POP POP POP POP POP POP POP POP POP LOG1 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xd1 0xbd EXTCODESIZE EXTCODECOPY 0x5c SWAP4 0xd0 0x26 0xce DUP5 0xcf PUSH7 0x7CD2A6D1E4C30C PUSH27 0x3EE72D7E7184D0B922820F2B64736F6C634300050B003200000000 ",
                "sourceMap": "188:1019:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;188:1019:6;;;;;;;;;;;;;;;;;;;1024:181;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1024:181:6;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1024:181:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1024:181:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1024:181:6;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1024:181:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1024:181:6;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1024:181:6;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1024:181:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1024:181:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1024:181:6;;-1:-1:-1;1024:181:6;-1:-1:-1;1024:181:6;:::i;:::-;;;955:17:5;;:49;;;-1:-1:-1;;;955:49:5;;993:10;955:49;;;;;;-1:-1:-1;;;;;955:17:5;;;;:37;;:49;;;;;;;;;;;;;;;:17;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;955:49:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;955:49:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;955:49:5;947:74;;;;;-1:-1:-1;;;947:74:5;;;;;;;;;;;;-1:-1:-1;;;947:74:5;;;;;;;;;;;;;;;1160:38:6;1170:9;;1181:4;;1187:10;;1160:38;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;1160:38:6;;;;;;;;;;;;;-1:-1:-1;1160:38:6;;;;;;;1:33:-1;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;1160:38:6;;;;;;;;;;;-1:-1:-1;1160:38:6;;;;;1:33:-1;99:1;81:16;;;74:27;1160:38:6;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;1160:38:6;;;;-1:-1:-1;1160:38:6;;-1:-1:-1;;;;;;;;;;1160:38:6;1024:181;;;;;;:::o"
            }
        }
    },
    "sources": {
        "event/EventEmitter.sol": {
            "id": 6
        },
        "base/Authorizable.sol": {
            "id": 5
        },
        "access_control/AuthorizedAddresses.sol": {
            "id": 4
        },
        "openzeppelin-solidity/contracts/ownership/Ownable.sol": {
            "id": 1
        }
    },
    "sourceCodes": {
        "event/EventEmitter.sol": "pragma solidity ^0.5.0;\n\nimport \"../base/Authorizable.sol\";\n\n/** @title EventEmitter\n    @author Freydal\n    @dev A central event emitting contract supporting the Kosu contract system.\n*/\ncontract EventEmitter is Authorizable {\n\n    // Generic Kosu Event\n    event KosuEvent(string eventType, bytes32[] data, string stringData);\n\n    /** @dev Event emitter instantiated with Authorizable.\n        @notice Event emitter instantiated with Authorizable.\n        @param auth AuthorizedAddresses deployed address.\n    */\n    constructor(address auth) Authorizable(auth) public {\n    }\n\n    /** @dev Emits a standard event from the Kosu contract system.  The events can be decoded though the Kosu.js library.\n        @notice Emits a standard event from the Kosu contract system.  The events can be decoded though the Kosu.js library.\n        @param eventType String name/type of event.\n        @param data Bytes32 encoded data to be emitted.\n        @param stringData String containing optional additional information.\n    */\n    function emitEvent(string calldata eventType, bytes32[] calldata data, string calldata stringData) external isAuthorized {\n        emit KosuEvent(eventType, data, stringData);\n    }\n}\n\n\n\n",
        "base/Authorizable.sol": "pragma solidity ^0.5.0;\n\nimport \"../access_control/AuthorizedAddresses.sol\";\n\n/** @title Authorizable\n    @author Freydal\n    @dev Implements a modifier to verify authorization with the AuthorizedAddresses contract\n*/\ncontract Authorizable {\n\n    // Contract storing system level permissions\n    AuthorizedAddresses authorizedAddress;\n\n    /** @dev Initializes contract with deployed AuthorizedAddresses contract.\n        @notice Initializes contract with deployed AuthorizedAddresses contract.\n        @param authorizedAddressesAddress Deployed AuthorizedAddresses address.\n    */\n    constructor(address authorizedAddressesAddress) public {\n        authorizedAddress = AuthorizedAddresses(authorizedAddressesAddress);\n    }\n\n    /** @dev Ensures msg.sender is authorized within the AuthorizedAddresses contract\n        @notice Ensures msg.sender is authorized within the AuthorizedAddresses contract\n    */\n    modifier isAuthorized() {\n        require(authorizedAddress.isAddressAuthorized(msg.sender), \"unauthorized\");\n        _;\n    }\n}\n",
        "access_control/AuthorizedAddresses.sol": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n/** @title AuthorizedAddresses\n    @author Freydal\n    @dev Common registry of system contract addresses authorized to access internal methods.\n*/\ncontract AuthorizedAddresses is Ownable {\n\n    // Mapping storing address permissions\n    mapping(address => bool) private authorizedAddresses;\n\n    /** @dev Initializes contract with the creators permissions set to true.\n        @notice Initializes contract with the creators permissions set to true.\n    */\n    constructor() Ownable() public {\n        authorizedAddresses[owner()] = true;\n    }\n\n    /** @dev Authorizes the address by setting the mapping value to true.\n        @notice Authorizes the address by setting the mapping value to true.\n        @param a Address to authorize\n    */\n    function authorizeAddress(address a) public {\n        require(authorizedAddresses[msg.sender], \"unauthorized\");\n        authorizedAddresses[a] = true;\n    }\n\n    /** @dev Disables the address previous authorization by setting the mapping value to false.\n        @notice Disables the address previous authorization by setting the mapping value to false\n        @param a Address to unauthorize\n    */\n    function unauthorizeAddress(address a) public {\n        require(authorizedAddresses[msg.sender]);\n        authorizedAddresses[a] = false;\n    }\n\n    /** @dev Verify address authorization.\n        @notice Verify address authorization.\n        @param a Address to authorize.\n        @return Address authorization\n    */\n    function isAddressAuthorized(address a) public view returns (bool) {\n        return authorizedAddresses[a];\n    }\n}\n",
        "openzeppelin-solidity/contracts/ownership/Ownable.sol": "pragma solidity ^0.5.0;\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n     * account.\n     */\n    constructor () internal {\n        _owner = msg.sender;\n        emit OwnershipTransferred(address(0), _owner);\n    }\n\n    /**\n     * @return the address of the owner.\n     */\n    function owner() public view returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(isOwner());\n        _;\n    }\n\n    /**\n     * @return true if `msg.sender` is the owner of the contract.\n     */\n    function isOwner() public view returns (bool) {\n        return msg.sender == _owner;\n    }\n\n    /**\n     * @dev Allows the current owner to relinquish control of the contract.\n     * @notice Renouncing to ownership will leave the contract without an owner.\n     * It will not be possible to call the functions with the `onlyOwner`\n     * modifier anymore.\n     */\n    function renounceOwnership() public onlyOwner {\n        emit OwnershipTransferred(_owner, address(0));\n        _owner = address(0);\n    }\n\n    /**\n     * @dev Allows the current owner to transfer control of the contract to a newOwner.\n     * @param newOwner The address to transfer ownership to.\n     */\n    function transferOwnership(address newOwner) public onlyOwner {\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers control of the contract to a newOwner.\n     * @param newOwner The address to transfer ownership to.\n     */\n    function _transferOwnership(address newOwner) internal {\n        require(newOwner != address(0));\n        emit OwnershipTransferred(_owner, newOwner);\n        _owner = newOwner;\n    }\n}\n"
    },
    "sourceTreeHashHex": "0xbf808b07b33bb4eab04bbd2e40a56cc385ada8c91bfcd278b3306f9b71b11595",
    "compiler": {
        "name": "solc",
        "version": "soljson-v0.5.11+commit.c082d0b4.js",
        "settings": {
            "optimizer": {
                "enabled": true,
                "runs": 200,
                "details": {
                    "yul": true,
                    "deduplicate": true,
                    "cse": true,
                    "constantOptimizer": true
                }
            },
            "outputSelection": {
                "*": {
                    "*": [
                        "abi",
                        "devdoc",
                        "evm.bytecode.object",
                        "evm.bytecode.sourceMap",
                        "evm.deployedBytecode.object",
                        "evm.deployedBytecode.sourceMap"
                    ]
                }
            },
            "evmVersion": "constantinople",
            "remappings": [
                "openzeppelin-solidity=/Users/hen/GitHub/km/node_modules/openzeppelin-solidity"
            ]
        }
    },
    "networks": {}
}
