{
  "contractName": "CertifiedFileChecker",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "signaturit",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "fileHash",
          "type": "string"
        },
        {
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getFile",
      "outputs": [
        {
          "name": "id",
          "type": "string"
        },
        {
          "name": "hash",
          "type": "string"
        },
        {
          "name": "size",
          "type": "uint256"
        },
        {
          "name": "createdAt",
          "type": "uint256"
        },
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "contract_address",
          "type": "address"
        },
        {
          "name": "more",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "eventType",
          "type": "string"
        },
        {
          "name": "certifiedFileAddress",
          "type": "address"
        }
      ],
      "name": "notify",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060018054600160a060020a0319163317905561099f806100326000396000f3fe60806040526004361061003d5763ffffffff60e060020a6000350416636cf0d3928114610042578063e71e657614610203578063f9b53335146102c1575b600080fd5b34801561004e57600080fd5b506100f56004803603604081101561006557600080fd5b810190602081018135602060020a81111561007f57600080fd5b82018360208201111561009157600080fd5b803590602001918460018302840111602060020a831117156100b257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f2915050565b6040805190810186905260608101859052600160a060020a038085166080830152831660a082015281151560c082015260e0808252885190820152875181906020808301916101008401918c019080838360005b83811015610161578181015183820152602001610149565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b5083810382528951815289516020918201918b019080838360005b838110156101c15781810151838201526020016101a9565b50505050905090810190601f1680156101ee5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561020f57600080fd5b506102bf6004803603604081101561022657600080fd5b810190602081018135602060020a81111561024057600080fd5b82018360208201111561025257600080fd5b803590602001918460018302840111602060020a8311171561027357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506106b69050565b005b3480156102cd57600080fd5b506102d66108d2565b60408051600160a060020a039092168252519081900360200190f35b6060806000806000806000806103078a6108e1565b60008181526002602052604090205490915060ff168015610338575060008181526002602052604090206001015489105b1561067b576000818152600260205260408120600190810154908b0110610360576000610363565b60015b6000838152600260205260408120600101805492935090918c90811061038557fe5b60009182526020822001546040805160e060020a63af640d0f0281529051600160a060020a039092169350839263af640d0f92600480840193829003018186803b1580156103d257600080fd5b505afa1580156103e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561040f57600080fd5b810190808051602060020a81111561042657600080fd5b8201602081018481111561043957600080fd5b8151602060020a81118282018710171561045257600080fd5b505092919050505081600160a060020a03166309bd5a606040518163ffffffff1660e060020a02815260040160006040518083038186803b15801561049657600080fd5b505afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156104d357600080fd5b810190808051602060020a8111156104ea57600080fd5b820160208101848111156104fd57600080fd5b8151602060020a81118282018710171561051657600080fd5b505092919050505082600160a060020a031663949d225d6040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561055a57600080fd5b505afa15801561056e573d6000803e3d6000fd5b505050506040513d602081101561058457600080fd5b50516040805160e460020a630cf09e0d0281529051600160a060020a0386169163cf09e0d0916004808301926020929190829003018186803b1580156105c957600080fd5b505afa1580156105dd573d6000803e3d6000fd5b505050506040513d60208110156105f357600080fd5b50516040805160e060020a638da5cb5b0281529051600160a060020a03871691638da5cb5b916004808301926020929190829003018186803b15801561063857600080fd5b505afa15801561064c573d6000803e3d6000fd5b505050506040513d602081101561066257600080fd5b5051939d50919b50995097509550935091506106aa9050565b505060408051602081810183526000808352835191820190935282815290975095509350839250829150819050805b92959891949750929550565b600154600160a060020a03163214610733576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c79205369676e617475726974206163636f756e742063616e20706572666044820152608960020a6e37b936903a3434b99030b1ba34b7b702606482015290519081900360840190fd5b600061073e836108e1565b90508061077f6040805190810160405280601f81526020017f6365727469666965645f66696c652e636f6e74726163742e63726561746564008152506108e1565b14156108cd576000829050600061085882600160a060020a03166309bd5a606040518163ffffffff1660e060020a02815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051602060020a81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151602060020a81118282018710171561084b57600080fd5b50509291905050506108e1565b60008181526002602052604090205490915060ff16151561088d576000818152600260205260409020805460ff191660011790555b6000908152600260209081526040822060019081018054918201815583529120018054600160a060020a031916600160a060020a03929092169190911790555b505050565b600154600160a060020a031681565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561092457818101518382015260200161090c565b50505050905090810190601f1680156109515780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120905091905056fea165627a7a723058209799c2e651478bab4669509c16981817692e7ee8bf5b8a75a216cda66d3b6ead0029",
  "deployedBytecode": "0x60806040526004361061003d5763ffffffff60e060020a6000350416636cf0d3928114610042578063e71e657614610203578063f9b53335146102c1575b600080fd5b34801561004e57600080fd5b506100f56004803603604081101561006557600080fd5b810190602081018135602060020a81111561007f57600080fd5b82018360208201111561009157600080fd5b803590602001918460018302840111602060020a831117156100b257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f2915050565b6040805190810186905260608101859052600160a060020a038085166080830152831660a082015281151560c082015260e0808252885190820152875181906020808301916101008401918c019080838360005b83811015610161578181015183820152602001610149565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b5083810382528951815289516020918201918b019080838360005b838110156101c15781810151838201526020016101a9565b50505050905090810190601f1680156101ee5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561020f57600080fd5b506102bf6004803603604081101561022657600080fd5b810190602081018135602060020a81111561024057600080fd5b82018360208201111561025257600080fd5b803590602001918460018302840111602060020a8311171561027357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506106b69050565b005b3480156102cd57600080fd5b506102d66108d2565b60408051600160a060020a039092168252519081900360200190f35b6060806000806000806000806103078a6108e1565b60008181526002602052604090205490915060ff168015610338575060008181526002602052604090206001015489105b1561067b576000818152600260205260408120600190810154908b0110610360576000610363565b60015b6000838152600260205260408120600101805492935090918c90811061038557fe5b60009182526020822001546040805160e060020a63af640d0f0281529051600160a060020a039092169350839263af640d0f92600480840193829003018186803b1580156103d257600080fd5b505afa1580156103e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561040f57600080fd5b810190808051602060020a81111561042657600080fd5b8201602081018481111561043957600080fd5b8151602060020a81118282018710171561045257600080fd5b505092919050505081600160a060020a03166309bd5a606040518163ffffffff1660e060020a02815260040160006040518083038186803b15801561049657600080fd5b505afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156104d357600080fd5b810190808051602060020a8111156104ea57600080fd5b820160208101848111156104fd57600080fd5b8151602060020a81118282018710171561051657600080fd5b505092919050505082600160a060020a031663949d225d6040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561055a57600080fd5b505afa15801561056e573d6000803e3d6000fd5b505050506040513d602081101561058457600080fd5b50516040805160e460020a630cf09e0d0281529051600160a060020a0386169163cf09e0d0916004808301926020929190829003018186803b1580156105c957600080fd5b505afa1580156105dd573d6000803e3d6000fd5b505050506040513d60208110156105f357600080fd5b50516040805160e060020a638da5cb5b0281529051600160a060020a03871691638da5cb5b916004808301926020929190829003018186803b15801561063857600080fd5b505afa15801561064c573d6000803e3d6000fd5b505050506040513d602081101561066257600080fd5b5051939d50919b50995097509550935091506106aa9050565b505060408051602081810183526000808352835191820190935282815290975095509350839250829150819050805b92959891949750929550565b600154600160a060020a03163214610733576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c79205369676e617475726974206163636f756e742063616e20706572666044820152608960020a6e37b936903a3434b99030b1ba34b7b702606482015290519081900360840190fd5b600061073e836108e1565b90508061077f6040805190810160405280601f81526020017f6365727469666965645f66696c652e636f6e74726163742e63726561746564008152506108e1565b14156108cd576000829050600061085882600160a060020a03166309bd5a606040518163ffffffff1660e060020a02815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051602060020a81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151602060020a81118282018710171561084b57600080fd5b50509291905050506108e1565b60008181526002602052604090205490915060ff16151561088d576000818152600260205260409020805460ff191660011790555b6000908152600260209081526040822060019081018054918201815583529120018054600160a060020a031916600160a060020a03929092169190911790555b505050565b600154600160a060020a031681565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561092457818101518382015260200161090c565b50505050905090810190601f1680156109515780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120905091905056fea165627a7a723058209799c2e651478bab4669509c16981817692e7ee8bf5b8a75a216cda66d3b6ead0029",
  "sourceMap": "196:2366:7:-;;;745:61;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;776:10:7;:23;;-1:-1:-1;;;;;;776:23:7;789:10;776:23;;;196:2366;;;;;;",
  "deployedSourceMap": "196:2366:7:-;;;;;;;;;-1:-1:-1;;;196:2366:7;;;;;;;;;;;;;;;;;;;;;;;812:1139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;812:1139:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;812:1139:7;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;812:1139:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;812:1139:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;812:1139:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;812:1139:7;;-1:-1:-1;;812:1139:7;;;-1:-1:-1;812:1139:7;;-1:-1:-1;;812:1139:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;812:1139:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;812:1139:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;812:1139:7;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;812:1139:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:603;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1957:603:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1957:603:7;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1957:603:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1957:603:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1957:603:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1957:603:7;;-1:-1:-1;;;1957:603:7;;-1:-1:-1;;;;;1957:603:7;;-1:-1:-1;1957:603:7;;-1:-1:-1;1957:603:7;;;265:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:25:7;;;;;;;;-1:-1:-1;;;;;265:25:7;;;;;;;;;;;;;;812:1139;916:16;942:18;970:9;989:14;1013;1037:24;1071:9;1097:21;1121:22;1134:8;1121:12;:22::i;:::-;1171:29;;;;:14;:29;;;;;:35;1097:46;;-1:-1:-1;1171:35:7;;:101;;;;-1:-1:-1;1222:29:7;;;;:14;:29;;;;;:35;;:42;:50;-1:-1:-1;1171:101:7;1154:634;;;1297:14;1314:29;;;:14;:29;;;;;1368:1;1314:35;;;:42;1360:9;;;-1:-1:-1;1314:71:7;;1380:5;1314:71;;;1373:4;1314:71;1399:36;1438:29;;;:14;:29;;;;;:35;;:42;;1297:88;;-1:-1:-1;1399:36:7;;1474:5;;1438:42;;;;;;;;;;;;;;;1520:18;;;-1:-1:-1;;;;;1520:18:7;;;;-1:-1:-1;;;;;1438:42:7;;;;-1:-1:-1;1438:42:7;;1520:16;;:18;;;;;;;;;;1438:42;1520:18;;;5:2:-1;;;;30:1;27;20:12;5:2;1520:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1520:18:7;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1520:18:7;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;1520:18:7;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1520:18:7;;;;;;1556:13;-1:-1:-1;;;;;1556:18:7;;:20;;;;;-1:-1:-1;;;1556:20:7;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1556:20:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1556:20:7;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1556:20:7;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;1556:20:7;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1556:20:7;;;;;;1594:13;-1:-1:-1;;;;;1594:18:7;;:20;;;;;-1:-1:-1;;;1594:20:7;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1594:20:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1594:20:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1594:20:7;1632:25;;;-1:-1:-1;;;;;1632:25:7;;;;-1:-1:-1;;;;;1632:23:7;;;;;:25;;;;;1594:20;;1632:25;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;1632:25:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1632:25:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1632:25:7;1675:21;;;-1:-1:-1;;;;;1675:21:7;;;;-1:-1:-1;;;;;1675:19:7;;;;;:21;;;;;1632:25;;1675:21;;;;;;;:19;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;1675:21:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1675:21:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1675:21:7;1495:282;;-1:-1:-1;1495:282:7;;-1:-1:-1;1495:282:7;-1:-1:-1;1495:282:7;-1:-1:-1;1675:21:7;-1:-1:-1;1722:13:7;-1:-1:-1;1754:9:7;-1:-1:-1;1495:282:7;;-1:-1:-1;1495:282:7;1154:634;-1:-1:-1;;1798:146:7;;;;;;;;;1851:1;1798:146;;;;;;;;;;;;;;;;-1:-1:-1;1798:146:7;-1:-1:-1;1851:1:7;-1:-1:-1;1851:1:7;;-1:-1:-1;1851:1:7;;-1:-1:-1;1851:1:7;;-1:-1:-1;1851:1:7;812:1139;;;;;;;;;;;:::o;1957:603::-;637:10;;-1:-1:-1;;;;;637:10:7;624:9;:23;603:117;;;;;-1:-1:-1;;;;;603:117:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;603:117:7;;;;;;;;;;;;;;;2082:24;2109:23;2122:9;2109:12;:23::i;:::-;2082:50;;2193:16;2147:42;2160:28;;;;;;;;;;;;;;;;;;2147:12;:42::i;:::-;:62;2143:411;;;2225:34;2285:20;2225:81;;2320:21;2344:32;2357:11;-1:-1:-1;;;;;2357:16:7;;:18;;;;;-1:-1:-1;;;2357:18:7;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2357:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2357:18:7;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2357:18:7;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2357:18:7;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;2357:18:7;;;;;;2344:12;:32::i;:::-;2396:29;;;;:14;:29;;;;;:35;2320:56;;-1:-1:-1;2396:35:7;;2395:36;2391:84;;;2433:29;;;;:14;:29;;;;;:42;;-1:-1:-1;;2433:42:7;2471:4;2433:42;;;2391:84;2490:29;;;;:14;:29;;;;;;;:35;;;;27:10:-1;;23:18;;;45:23;;2490:53:7;;;;;;;-1:-1:-1;;;;;;2490:53:7;-1:-1:-1;;;;;2490:53:7;;;;;;;;;;2143:411;731:1;1957:603;;:::o;265:25::-;;;-1:-1:-1;;;;;265:25:7;;:::o;342:182:31:-;439:7;503:3;492:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;492:15:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;492:15:31;;;469:48;;;;;;462:55;;342:182;;;:::o",
  "source": "pragma solidity <0.6.0;\n\n/*\nGas to deploy: 731.348\n*/\n\nimport \"./interfaces/CertifiedFileInterface.sol\";\nimport \"./interfaces/CertifiedFileCheckerInterface.sol\";\nimport \"./libraries/Utils.sol\";\n\n\ncontract CertifiedFileChecker is CertifiedFileCheckerInterface {\n    address public signaturit;\n\n    string constant private CERTIFIED_FILE_CREATED_EVENT = \"certified_file.contract.created\";\n\n    struct CertifiedFilesWithHash {\n        bool exist;\n        CertifiedFileInterface[] files;\n    }\n\n    mapping(bytes32 => CertifiedFilesWithHash) private certifiedFiles;\n\n    modifier signaturitOnly() {\n        require(\n            tx.origin == signaturit,\n            \"Only Signaturit account can perform this action\"\n        );\n\n        _;\n    }\n\n    constructor() public {\n        signaturit = msg.sender;\n    }\n\n    function getFile(\n        string memory fileHash,\n        uint index\n    ) public view returns(\n        string memory id,\n        string memory hash,\n        uint size,\n        uint createdAt,\n        address  owner,\n        address contract_address,\n        bool more\n    ) {\n        bytes32 hashConverted = Utils.keccak(fileHash);\n\n        if (\n            certifiedFiles[hashConverted].exist &&\n            certifiedFiles[hashConverted].files.length > index\n        ) {\n            bool foundMore = certifiedFiles[hashConverted].files.length > (index + 1) ? true : false;\n            CertifiedFileInterface certifiedFile = certifiedFiles[hashConverted].files[index];\n\n            return (\n                certifiedFile.id(),\n                certifiedFile.hash(),\n                certifiedFile.size(),\n                certifiedFile.createdAt(),\n                certifiedFile.owner(),\n                address(certifiedFile),\n                foundMore\n            );\n        }\n\n        return (\n            \"\",\n            \"\",\n            0,\n            0,\n            address(0),\n            address(0),\n            false\n        );\n    }\n\n    function notify(\n        string memory eventType,\n        address certifiedFileAddress\n    ) public signaturitOnly {\n        bytes32 bytes32eventType = Utils.keccak(eventType);\n\n        if (Utils.keccak(CERTIFIED_FILE_CREATED_EVENT) == bytes32eventType) {\n            CertifiedFileInterface cerfiedFile = CertifiedFileInterface(certifiedFileAddress);\n            bytes32 hashConverted = Utils.keccak(cerfiedFile.hash());\n\n            if (!certifiedFiles[hashConverted].exist) certifiedFiles[hashConverted].exist = true;\n\n            certifiedFiles[hashConverted].files.push(cerfiedFile);\n        }\n    }\n}\n",
  "sourcePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedFileChecker.sol",
  "ast": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedFileChecker.sol",
    "exportedSymbols": {
      "CertifiedFileChecker": [
        1612
      ]
    },
    "id": 1613,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1407,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/CertifiedFileInterface.sol",
        "file": "./interfaces/CertifiedFileInterface.sol",
        "id": 1408,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 6759,
        "src": "55:49:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/CertifiedFileCheckerInterface.sol",
        "file": "./interfaces/CertifiedFileCheckerInterface.sol",
        "id": 1409,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 6740,
        "src": "105:56:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/libraries/Utils.sol",
        "file": "./libraries/Utils.sol",
        "id": 1410,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 7290,
        "src": "162:31:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1411,
              "name": "CertifiedFileCheckerInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6739,
              "src": "229:29:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_CertifiedFileCheckerInterface_$6739",
                "typeString": "contract CertifiedFileCheckerInterface"
              }
            },
            "id": 1412,
            "nodeType": "InheritanceSpecifier",
            "src": "229:29:7"
          }
        ],
        "contractDependencies": [
          6739,
          6927
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1612,
        "linearizedBaseContracts": [
          1612,
          6739,
          6927
        ],
        "name": "CertifiedFileChecker",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1414,
            "name": "signaturit",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "265:25:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1413,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:7",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1417,
            "name": "CERTIFIED_FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "297:88:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1415,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "297:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f66696c652e636f6e74726163742e63726561746564",
              "id": 1416,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "352:33:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6ea586b01b93169892b084e656c4efd004082d61c22d49fa7046dacfea77c0c8",
                "typeString": "literal_string \"certified_file.contract.created\""
              },
              "value": "certified_file.contract.created"
            },
            "visibility": "private"
          },
          {
            "canonicalName": "CertifiedFileChecker.CertifiedFilesWithHash",
            "id": 1423,
            "members": [
              {
                "constant": false,
                "id": 1419,
                "name": "exist",
                "nodeType": "VariableDeclaration",
                "scope": 1423,
                "src": "432:10:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1418,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "432:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1422,
                "name": "files",
                "nodeType": "VariableDeclaration",
                "scope": 1423,
                "src": "452:30:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage_ptr",
                  "typeString": "contract CertifiedFileInterface[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 1420,
                    "name": "CertifiedFileInterface",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6758,
                    "src": "452:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                      "typeString": "contract CertifiedFileInterface"
                    }
                  },
                  "id": 1421,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "452:24:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage_ptr",
                    "typeString": "contract CertifiedFileInterface[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "CertifiedFilesWithHash",
            "nodeType": "StructDefinition",
            "scope": 1612,
            "src": "392:97:7",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1427,
            "name": "certifiedFiles",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "495:65:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
              "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash)"
            },
            "typeName": {
              "id": 1426,
              "keyType": {
                "id": 1424,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "503:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "495:42:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1425,
                "name": "CertifiedFilesWithHash",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1423,
                "src": "514:22:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage_ptr",
                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1438,
              "nodeType": "Block",
              "src": "593:146:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1430,
                            "name": "tx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7316,
                            "src": "624:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_transaction",
                              "typeString": "tx"
                            }
                          },
                          "id": 1431,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "origin",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "624:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1432,
                          "name": "signaturit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1414,
                          "src": "637:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "624:23:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4f6e6c79205369676e617475726974206163636f756e742063616e20706572666f726d207468697320616374696f6e",
                        "id": 1434,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "661:49:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c4d39fb6c3ef76259aa8a9c7aa83179d818e17cba0db927afcdb36c571443b99",
                          "typeString": "literal_string \"Only Signaturit account can perform this action\""
                        },
                        "value": "Only Signaturit account can perform this action"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c4d39fb6c3ef76259aa8a9c7aa83179d818e17cba0db927afcdb36c571443b99",
                          "typeString": "literal_string \"Only Signaturit account can perform this action\""
                        }
                      ],
                      "id": 1429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7307,
                        7308
                      ],
                      "referencedDeclaration": 7308,
                      "src": "603:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "603:117:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1436,
                  "nodeType": "ExpressionStatement",
                  "src": "603:117:7"
                },
                {
                  "id": 1437,
                  "nodeType": "PlaceholderStatement",
                  "src": "731:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 1439,
            "name": "signaturitOnly",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "590:2:7"
            },
            "src": "567:172:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1447,
              "nodeType": "Block",
              "src": "766:40:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1442,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1414,
                      "src": "776:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1443,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "789:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "789:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "776:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1446,
                  "nodeType": "ExpressionStatement",
                  "src": "776:23:7"
                }
              ]
            },
            "documentation": null,
            "id": 1448,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "756:2:7"
            },
            "returnParameters": {
              "id": 1441,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "766:0:7"
            },
            "scope": 1612,
            "src": "745:61:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1549,
              "nodeType": "Block",
              "src": "1087:864:7",
              "statements": [
                {
                  "assignments": [
                    1470
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1470,
                      "name": "hashConverted",
                      "nodeType": "VariableDeclaration",
                      "scope": 1549,
                      "src": "1097:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1469,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1097:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1475,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1473,
                        "name": "fileHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1450,
                        "src": "1134:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1471,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "1121:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 1472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "1121:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1121:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1097:46:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1476,
                          "name": "certifiedFiles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1427,
                          "src": "1171:14:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                            "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                          }
                        },
                        "id": 1478,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1477,
                          "name": "hashConverted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1470,
                          "src": "1186:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1171:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                          "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                        }
                      },
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "exist",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1419,
                      "src": "1171:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1486,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1480,
                              "name": "certifiedFiles",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1427,
                              "src": "1222:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                              }
                            },
                            "id": 1482,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1481,
                              "name": "hashConverted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1470,
                              "src": "1237:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1222:29:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                              "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                            }
                          },
                          "id": 1483,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "files",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1422,
                          "src": "1222:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                            "typeString": "contract CertifiedFileInterface[] storage ref"
                          }
                        },
                        "id": 1484,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1222:42:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1485,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1452,
                        "src": "1267:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1222:50:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1171:101:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1535,
                  "nodeType": "IfStatement",
                  "src": "1154:634:7",
                  "trueBody": {
                    "id": 1534,
                    "nodeType": "Block",
                    "src": "1283:505:7",
                    "statements": [
                      {
                        "assignments": [
                          1489
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1489,
                            "name": "foundMore",
                            "nodeType": "VariableDeclaration",
                            "scope": 1534,
                            "src": "1297:14:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 1488,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "1297:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1503,
                        "initialValue": {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1490,
                                    "name": "certifiedFiles",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1427,
                                    "src": "1314:14:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                      "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                    }
                                  },
                                  "id": 1492,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1491,
                                    "name": "hashConverted",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1470,
                                    "src": "1329:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1314:29:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                    "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                  }
                                },
                                "id": 1493,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "files",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1422,
                                "src": "1314:35:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                                  "typeString": "contract CertifiedFileInterface[] storage ref"
                                }
                              },
                              "id": 1494,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1314:42:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 1497,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1495,
                                    "name": "index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1452,
                                    "src": "1360:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 1496,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1368:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "1360:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 1498,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1359:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1314:56:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 1501,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1380:5:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "id": 1502,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "1314:71:7",
                          "trueExpression": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 1500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1373:4:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1297:88:7"
                      },
                      {
                        "assignments": [
                          1505
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1505,
                            "name": "certifiedFile",
                            "nodeType": "VariableDeclaration",
                            "scope": 1534,
                            "src": "1399:36:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                              "typeString": "contract CertifiedFileInterface"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1504,
                              "name": "CertifiedFileInterface",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6758,
                              "src": "1399:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1512,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1506,
                                "name": "certifiedFiles",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1427,
                                "src": "1438:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                  "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                }
                              },
                              "id": 1508,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1507,
                                "name": "hashConverted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1470,
                                "src": "1453:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1438:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                              }
                            },
                            "id": 1509,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "files",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1422,
                            "src": "1438:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                              "typeString": "contract CertifiedFileInterface[] storage ref"
                            }
                          },
                          "id": 1511,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1510,
                            "name": "index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1452,
                            "src": "1474:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1438:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                            "typeString": "contract CertifiedFileInterface"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1399:81:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1513,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1520:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1514,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "id",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6749,
                                "src": "1520:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1515,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1520:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1516,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1556:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1517,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "hash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6751,
                                "src": "1556:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1518,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1556:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1519,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1594:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1520,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "size",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6755,
                                "src": "1594:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view external returns (uint256)"
                                }
                              },
                              "id": 1521,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1594:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1522,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1632:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1523,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "createdAt",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6753,
                                "src": "1632:23:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view external returns (uint256)"
                                }
                              },
                              "id": 1524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1632:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1525,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1675:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1526,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "owner",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6747,
                                "src": "1675:19:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                  "typeString": "function () view external returns (address)"
                                }
                              },
                              "id": 1527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1675:21:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1529,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1722:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                ],
                                "id": 1528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1714:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1530,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1714:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1531,
                              "name": "foundMore",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1489,
                              "src": "1754:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 1532,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1502:275:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_bool_$",
                            "typeString": "tuple(string memory,string memory,uint256,uint256,address,address,bool)"
                          }
                        },
                        "functionReturnParameters": 1468,
                        "id": 1533,
                        "nodeType": "Return",
                        "src": "1495:282:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "",
                        "id": 1536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1819:2:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "",
                        "id": 1537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1835:2:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1851:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1866:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1541,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1889:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 1540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1881:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1542,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1881:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1544,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1913:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 1543,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1905:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1905:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1929:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "id": 1547,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1805:139:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$_t_rational_0_by_1_$_t_rational_0_by_1_$_t_address_payable_$_t_address_payable_$_t_bool_$",
                      "typeString": "tuple(literal_string \"\",literal_string \"\",int_const 0,int_const 0,address payable,address payable,bool)"
                    }
                  },
                  "functionReturnParameters": 1468,
                  "id": 1548,
                  "nodeType": "Return",
                  "src": "1798:146:7"
                }
              ]
            },
            "documentation": null,
            "id": 1550,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFile",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1450,
                  "name": "fileHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "838:22:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1449,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "838:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1452,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "870:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1451,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "870:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "828:58:7"
            },
            "returnParameters": {
              "id": 1468,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1455,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "916:16:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1454,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "916:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1457,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "942:18:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "942:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "name": "size",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "970:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "name": "createdAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "989:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1463,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1013:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1465,
                  "name": "contract_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1037:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1464,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1467,
                  "name": "more",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1071:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1466,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "906:180:7"
            },
            "scope": 1612,
            "src": "812:1139:7",
            "stateMutability": "view",
            "superFunction": 6738,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "2072:488:7",
              "statements": [
                {
                  "assignments": [
                    1560
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1560,
                      "name": "bytes32eventType",
                      "nodeType": "VariableDeclaration",
                      "scope": 1610,
                      "src": "2082:24:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1559,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2082:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1565,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1563,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1552,
                        "src": "2122:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1561,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "2109:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 1562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "2109:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2109:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2082:50:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1568,
                          "name": "CERTIFIED_FILE_CREATED_EVENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1417,
                          "src": "2160:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1566,
                          "name": "Utils",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "2147:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                            "typeString": "type(library Utils)"
                          }
                        },
                        "id": 1567,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keccak",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7288,
                        "src": "2147:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 1569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2147:42:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1570,
                      "name": "bytes32eventType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1560,
                      "src": "2193:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2147:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1609,
                  "nodeType": "IfStatement",
                  "src": "2143:411:7",
                  "trueBody": {
                    "id": 1608,
                    "nodeType": "Block",
                    "src": "2211:343:7",
                    "statements": [
                      {
                        "assignments": [
                          1573
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1573,
                            "name": "cerfiedFile",
                            "nodeType": "VariableDeclaration",
                            "scope": 1608,
                            "src": "2225:34:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                              "typeString": "contract CertifiedFileInterface"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1572,
                              "name": "CertifiedFileInterface",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6758,
                              "src": "2225:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1577,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1575,
                              "name": "certifiedFileAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1554,
                              "src": "2285:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1574,
                            "name": "CertifiedFileInterface",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6758,
                            "src": "2262:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_CertifiedFileInterface_$6758_$",
                              "typeString": "type(contract CertifiedFileInterface)"
                            }
                          },
                          "id": 1576,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2262:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                            "typeString": "contract CertifiedFileInterface"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2225:81:7"
                      },
                      {
                        "assignments": [
                          1579
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1579,
                            "name": "hashConverted",
                            "nodeType": "VariableDeclaration",
                            "scope": 1608,
                            "src": "2320:21:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1578,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "2320:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1586,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1582,
                                  "name": "cerfiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1573,
                                  "src": "2357:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1583,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "hash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6751,
                                "src": "2357:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1584,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2357:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1580,
                              "name": "Utils",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "2344:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                "typeString": "type(library Utils)"
                              }
                            },
                            "id": 1581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "keccak",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7288,
                            "src": "2344:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2344:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2320:56:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 1591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "2395:36:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1587,
                                "name": "certifiedFiles",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1427,
                                "src": "2396:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                  "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                }
                              },
                              "id": 1589,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1588,
                                "name": "hashConverted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1579,
                                "src": "2411:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2396:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                              }
                            },
                            "id": 1590,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "exist",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1419,
                            "src": "2396:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1599,
                        "nodeType": "IfStatement",
                        "src": "2391:84:7",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 1597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1592,
                                  "name": "certifiedFiles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1427,
                                  "src": "2433:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                    "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                  }
                                },
                                "id": 1594,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1593,
                                  "name": "hashConverted",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1579,
                                  "src": "2448:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2433:29:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                }
                              },
                              "id": 1595,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "exist",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1419,
                              "src": "2433:35:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 1596,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2471:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "2433:42:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 1598,
                          "nodeType": "ExpressionStatement",
                          "src": "2433:42:7"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1605,
                              "name": "cerfiedFile",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1573,
                              "src": "2531:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1600,
                                  "name": "certifiedFiles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1427,
                                  "src": "2490:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                    "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                  }
                                },
                                "id": 1602,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1601,
                                  "name": "hashConverted",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1579,
                                  "src": "2505:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2490:29:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                }
                              },
                              "id": 1603,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "files",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1422,
                              "src": "2490:35:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                                "typeString": "contract CertifiedFileInterface[] storage ref"
                              }
                            },
                            "id": 1604,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2490:40:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_CertifiedFileInterface_$6758_$returns$_t_uint256_$",
                              "typeString": "function (contract CertifiedFileInterface) returns (uint256)"
                            }
                          },
                          "id": 1606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2490:53:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1607,
                        "nodeType": "ExpressionStatement",
                        "src": "2490:53:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1611,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1557,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1556,
                  "name": "signaturitOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1439,
                  "src": "2057:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2057:14:7"
              }
            ],
            "name": "notify",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1552,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1982:23:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1551,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1982:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1554,
                  "name": "certifiedFileAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "2015:28:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1553,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2015:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1972:77:7"
            },
            "returnParameters": {
              "id": 1558,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2072:0:7"
            },
            "scope": 1612,
            "src": "1957:603:7",
            "stateMutability": "nonpayable",
            "superFunction": 6926,
            "visibility": "public"
          }
        ],
        "scope": 1613,
        "src": "196:2366:7"
      }
    ],
    "src": "0:2563:7"
  },
  "legacyAST": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedFileChecker.sol",
    "exportedSymbols": {
      "CertifiedFileChecker": [
        1612
      ]
    },
    "id": 1613,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1407,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:7"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/CertifiedFileInterface.sol",
        "file": "./interfaces/CertifiedFileInterface.sol",
        "id": 1408,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 6759,
        "src": "55:49:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/CertifiedFileCheckerInterface.sol",
        "file": "./interfaces/CertifiedFileCheckerInterface.sol",
        "id": 1409,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 6740,
        "src": "105:56:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/libraries/Utils.sol",
        "file": "./libraries/Utils.sol",
        "id": 1410,
        "nodeType": "ImportDirective",
        "scope": 1613,
        "sourceUnit": 7290,
        "src": "162:31:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1411,
              "name": "CertifiedFileCheckerInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6739,
              "src": "229:29:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_CertifiedFileCheckerInterface_$6739",
                "typeString": "contract CertifiedFileCheckerInterface"
              }
            },
            "id": 1412,
            "nodeType": "InheritanceSpecifier",
            "src": "229:29:7"
          }
        ],
        "contractDependencies": [
          6739,
          6927
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1612,
        "linearizedBaseContracts": [
          1612,
          6739,
          6927
        ],
        "name": "CertifiedFileChecker",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1414,
            "name": "signaturit",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "265:25:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1413,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:7",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1417,
            "name": "CERTIFIED_FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "297:88:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1415,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "297:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f66696c652e636f6e74726163742e63726561746564",
              "id": 1416,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "352:33:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6ea586b01b93169892b084e656c4efd004082d61c22d49fa7046dacfea77c0c8",
                "typeString": "literal_string \"certified_file.contract.created\""
              },
              "value": "certified_file.contract.created"
            },
            "visibility": "private"
          },
          {
            "canonicalName": "CertifiedFileChecker.CertifiedFilesWithHash",
            "id": 1423,
            "members": [
              {
                "constant": false,
                "id": 1419,
                "name": "exist",
                "nodeType": "VariableDeclaration",
                "scope": 1423,
                "src": "432:10:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1418,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "432:4:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1422,
                "name": "files",
                "nodeType": "VariableDeclaration",
                "scope": 1423,
                "src": "452:30:7",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage_ptr",
                  "typeString": "contract CertifiedFileInterface[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 1420,
                    "name": "CertifiedFileInterface",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6758,
                    "src": "452:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                      "typeString": "contract CertifiedFileInterface"
                    }
                  },
                  "id": 1421,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "452:24:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage_ptr",
                    "typeString": "contract CertifiedFileInterface[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "CertifiedFilesWithHash",
            "nodeType": "StructDefinition",
            "scope": 1612,
            "src": "392:97:7",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1427,
            "name": "certifiedFiles",
            "nodeType": "VariableDeclaration",
            "scope": 1612,
            "src": "495:65:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
              "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash)"
            },
            "typeName": {
              "id": 1426,
              "keyType": {
                "id": 1424,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "503:7:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "495:42:7",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1425,
                "name": "CertifiedFilesWithHash",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1423,
                "src": "514:22:7",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage_ptr",
                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 1438,
              "nodeType": "Block",
              "src": "593:146:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1433,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1430,
                            "name": "tx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7316,
                            "src": "624:2:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_transaction",
                              "typeString": "tx"
                            }
                          },
                          "id": 1431,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "origin",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "624:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1432,
                          "name": "signaturit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1414,
                          "src": "637:10:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "624:23:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4f6e6c79205369676e617475726974206163636f756e742063616e20706572666f726d207468697320616374696f6e",
                        "id": 1434,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "661:49:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c4d39fb6c3ef76259aa8a9c7aa83179d818e17cba0db927afcdb36c571443b99",
                          "typeString": "literal_string \"Only Signaturit account can perform this action\""
                        },
                        "value": "Only Signaturit account can perform this action"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c4d39fb6c3ef76259aa8a9c7aa83179d818e17cba0db927afcdb36c571443b99",
                          "typeString": "literal_string \"Only Signaturit account can perform this action\""
                        }
                      ],
                      "id": 1429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7307,
                        7308
                      ],
                      "referencedDeclaration": 7308,
                      "src": "603:7:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "603:117:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1436,
                  "nodeType": "ExpressionStatement",
                  "src": "603:117:7"
                },
                {
                  "id": 1437,
                  "nodeType": "PlaceholderStatement",
                  "src": "731:1:7"
                }
              ]
            },
            "documentation": null,
            "id": 1439,
            "name": "signaturitOnly",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "590:2:7"
            },
            "src": "567:172:7",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1447,
              "nodeType": "Block",
              "src": "766:40:7",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1442,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1414,
                      "src": "776:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1443,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "789:3:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "789:10:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "776:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1446,
                  "nodeType": "ExpressionStatement",
                  "src": "776:23:7"
                }
              ]
            },
            "documentation": null,
            "id": 1448,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "756:2:7"
            },
            "returnParameters": {
              "id": 1441,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "766:0:7"
            },
            "scope": 1612,
            "src": "745:61:7",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1549,
              "nodeType": "Block",
              "src": "1087:864:7",
              "statements": [
                {
                  "assignments": [
                    1470
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1470,
                      "name": "hashConverted",
                      "nodeType": "VariableDeclaration",
                      "scope": 1549,
                      "src": "1097:21:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1469,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1097:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1475,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1473,
                        "name": "fileHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1450,
                        "src": "1134:8:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1471,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "1121:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 1472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "1121:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1121:22:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1097:46:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1476,
                          "name": "certifiedFiles",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1427,
                          "src": "1171:14:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                            "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                          }
                        },
                        "id": 1478,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1477,
                          "name": "hashConverted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1470,
                          "src": "1186:13:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1171:29:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                          "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                        }
                      },
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "exist",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1419,
                      "src": "1171:35:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1486,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1480,
                              "name": "certifiedFiles",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1427,
                              "src": "1222:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                              }
                            },
                            "id": 1482,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1481,
                              "name": "hashConverted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1470,
                              "src": "1237:13:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1222:29:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                              "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                            }
                          },
                          "id": 1483,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "files",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1422,
                          "src": "1222:35:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                            "typeString": "contract CertifiedFileInterface[] storage ref"
                          }
                        },
                        "id": 1484,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1222:42:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1485,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1452,
                        "src": "1267:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1222:50:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1171:101:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1535,
                  "nodeType": "IfStatement",
                  "src": "1154:634:7",
                  "trueBody": {
                    "id": 1534,
                    "nodeType": "Block",
                    "src": "1283:505:7",
                    "statements": [
                      {
                        "assignments": [
                          1489
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1489,
                            "name": "foundMore",
                            "nodeType": "VariableDeclaration",
                            "scope": 1534,
                            "src": "1297:14:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 1488,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "1297:4:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1503,
                        "initialValue": {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1490,
                                    "name": "certifiedFiles",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1427,
                                    "src": "1314:14:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                      "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                    }
                                  },
                                  "id": 1492,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1491,
                                    "name": "hashConverted",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1470,
                                    "src": "1329:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1314:29:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                    "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                  }
                                },
                                "id": 1493,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "files",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1422,
                                "src": "1314:35:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                                  "typeString": "contract CertifiedFileInterface[] storage ref"
                                }
                              },
                              "id": 1494,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1314:42:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 1497,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1495,
                                    "name": "index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1452,
                                    "src": "1360:5:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 1496,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1368:1:7",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "1360:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 1498,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1359:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1314:56:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 1501,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1380:5:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "id": 1502,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "1314:71:7",
                          "trueExpression": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 1500,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1373:4:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1297:88:7"
                      },
                      {
                        "assignments": [
                          1505
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1505,
                            "name": "certifiedFile",
                            "nodeType": "VariableDeclaration",
                            "scope": 1534,
                            "src": "1399:36:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                              "typeString": "contract CertifiedFileInterface"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1504,
                              "name": "CertifiedFileInterface",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6758,
                              "src": "1399:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1512,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1506,
                                "name": "certifiedFiles",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1427,
                                "src": "1438:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                  "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                }
                              },
                              "id": 1508,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1507,
                                "name": "hashConverted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1470,
                                "src": "1453:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1438:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                              }
                            },
                            "id": 1509,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "files",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1422,
                            "src": "1438:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                              "typeString": "contract CertifiedFileInterface[] storage ref"
                            }
                          },
                          "id": 1511,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1510,
                            "name": "index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1452,
                            "src": "1474:5:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1438:42:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                            "typeString": "contract CertifiedFileInterface"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1399:81:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1513,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1520:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1514,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "id",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6749,
                                "src": "1520:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1515,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1520:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1516,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1556:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1517,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "hash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6751,
                                "src": "1556:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1518,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1556:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1519,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1594:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1520,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "size",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6755,
                                "src": "1594:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view external returns (uint256)"
                                }
                              },
                              "id": 1521,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1594:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1522,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1632:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1523,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "createdAt",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6753,
                                "src": "1632:23:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                  "typeString": "function () view external returns (uint256)"
                                }
                              },
                              "id": 1524,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1632:25:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1525,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1675:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1526,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "owner",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6747,
                                "src": "1675:19:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                  "typeString": "function () view external returns (address)"
                                }
                              },
                              "id": 1527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1675:21:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1529,
                                  "name": "certifiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1505,
                                  "src": "1722:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                ],
                                "id": 1528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1714:7:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 1530,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1714:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1531,
                              "name": "foundMore",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1489,
                              "src": "1754:9:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 1532,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1502:275:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_bool_$",
                            "typeString": "tuple(string memory,string memory,uint256,uint256,address,address,bool)"
                          }
                        },
                        "functionReturnParameters": 1468,
                        "id": 1533,
                        "nodeType": "Return",
                        "src": "1495:282:7"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "",
                        "id": 1536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1819:2:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "",
                        "id": 1537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1835:2:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1851:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1866:1:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1541,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1889:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 1540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1881:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1542,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1881:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 1544,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1913:1:7",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 1543,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1905:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1905:10:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1546,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1929:5:7",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "id": 1547,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1805:139:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_$_t_rational_0_by_1_$_t_rational_0_by_1_$_t_address_payable_$_t_address_payable_$_t_bool_$",
                      "typeString": "tuple(literal_string \"\",literal_string \"\",int_const 0,int_const 0,address payable,address payable,bool)"
                    }
                  },
                  "functionReturnParameters": 1468,
                  "id": 1548,
                  "nodeType": "Return",
                  "src": "1798:146:7"
                }
              ]
            },
            "documentation": null,
            "id": 1550,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFile",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1450,
                  "name": "fileHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "838:22:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1449,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "838:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1452,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "870:10:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1451,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "870:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "828:58:7"
            },
            "returnParameters": {
              "id": 1468,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1455,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "916:16:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1454,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "916:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1457,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "942:18:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "942:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "name": "size",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "970:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "name": "createdAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "989:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1463,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1013:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1465,
                  "name": "contract_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1037:24:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1464,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1467,
                  "name": "more",
                  "nodeType": "VariableDeclaration",
                  "scope": 1550,
                  "src": "1071:9:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1466,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:4:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "906:180:7"
            },
            "scope": 1612,
            "src": "812:1139:7",
            "stateMutability": "view",
            "superFunction": 6738,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "2072:488:7",
              "statements": [
                {
                  "assignments": [
                    1560
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1560,
                      "name": "bytes32eventType",
                      "nodeType": "VariableDeclaration",
                      "scope": 1610,
                      "src": "2082:24:7",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1559,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2082:7:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1565,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1563,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1552,
                        "src": "2122:9:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1561,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "2109:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 1562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "2109:12:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2109:23:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2082:50:7"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1568,
                          "name": "CERTIFIED_FILE_CREATED_EVENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1417,
                          "src": "2160:28:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1566,
                          "name": "Utils",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "2147:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                            "typeString": "type(library Utils)"
                          }
                        },
                        "id": 1567,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keccak",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7288,
                        "src": "2147:12:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 1569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2147:42:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1570,
                      "name": "bytes32eventType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1560,
                      "src": "2193:16:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2147:62:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1609,
                  "nodeType": "IfStatement",
                  "src": "2143:411:7",
                  "trueBody": {
                    "id": 1608,
                    "nodeType": "Block",
                    "src": "2211:343:7",
                    "statements": [
                      {
                        "assignments": [
                          1573
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1573,
                            "name": "cerfiedFile",
                            "nodeType": "VariableDeclaration",
                            "scope": 1608,
                            "src": "2225:34:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                              "typeString": "contract CertifiedFileInterface"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1572,
                              "name": "CertifiedFileInterface",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6758,
                              "src": "2225:22:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1577,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1575,
                              "name": "certifiedFileAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1554,
                              "src": "2285:20:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1574,
                            "name": "CertifiedFileInterface",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6758,
                            "src": "2262:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_CertifiedFileInterface_$6758_$",
                              "typeString": "type(contract CertifiedFileInterface)"
                            }
                          },
                          "id": 1576,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2262:44:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                            "typeString": "contract CertifiedFileInterface"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2225:81:7"
                      },
                      {
                        "assignments": [
                          1579
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1579,
                            "name": "hashConverted",
                            "nodeType": "VariableDeclaration",
                            "scope": 1608,
                            "src": "2320:21:7",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1578,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "2320:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1586,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1582,
                                  "name": "cerfiedFile",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1573,
                                  "src": "2357:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                    "typeString": "contract CertifiedFileInterface"
                                  }
                                },
                                "id": 1583,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "hash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6751,
                                "src": "2357:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_$",
                                  "typeString": "function () view external returns (string memory)"
                                }
                              },
                              "id": 1584,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2357:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1580,
                              "name": "Utils",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "2344:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                "typeString": "type(library Utils)"
                              }
                            },
                            "id": 1581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "keccak",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7288,
                            "src": "2344:12:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2344:32:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2320:56:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 1591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "2395:36:7",
                          "subExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1587,
                                "name": "certifiedFiles",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1427,
                                "src": "2396:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                  "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                }
                              },
                              "id": 1589,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1588,
                                "name": "hashConverted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1579,
                                "src": "2411:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2396:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                              }
                            },
                            "id": 1590,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "exist",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1419,
                            "src": "2396:35:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 1599,
                        "nodeType": "IfStatement",
                        "src": "2391:84:7",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 1597,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1592,
                                  "name": "certifiedFiles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1427,
                                  "src": "2433:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                    "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                  }
                                },
                                "id": 1594,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1593,
                                  "name": "hashConverted",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1579,
                                  "src": "2448:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2433:29:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                }
                              },
                              "id": 1595,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "exist",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1419,
                              "src": "2433:35:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 1596,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2471:4:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "2433:42:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 1598,
                          "nodeType": "ExpressionStatement",
                          "src": "2433:42:7"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1605,
                              "name": "cerfiedFile",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1573,
                              "src": "2531:11:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_CertifiedFileInterface_$6758",
                                "typeString": "contract CertifiedFileInterface"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1600,
                                  "name": "certifiedFiles",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1427,
                                  "src": "2490:14:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CertifiedFilesWithHash_$1423_storage_$",
                                    "typeString": "mapping(bytes32 => struct CertifiedFileChecker.CertifiedFilesWithHash storage ref)"
                                  }
                                },
                                "id": 1602,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1601,
                                  "name": "hashConverted",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1579,
                                  "src": "2505:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2490:29:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CertifiedFilesWithHash_$1423_storage",
                                  "typeString": "struct CertifiedFileChecker.CertifiedFilesWithHash storage ref"
                                }
                              },
                              "id": 1603,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "files",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1422,
                              "src": "2490:35:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_CertifiedFileInterface_$6758_$dyn_storage",
                                "typeString": "contract CertifiedFileInterface[] storage ref"
                              }
                            },
                            "id": 1604,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2490:40:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_CertifiedFileInterface_$6758_$returns$_t_uint256_$",
                              "typeString": "function (contract CertifiedFileInterface) returns (uint256)"
                            }
                          },
                          "id": 1606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2490:53:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1607,
                        "nodeType": "ExpressionStatement",
                        "src": "2490:53:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1611,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1557,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1556,
                  "name": "signaturitOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1439,
                  "src": "2057:14:7",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2057:14:7"
              }
            ],
            "name": "notify",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1552,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "1982:23:7",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1551,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1982:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1554,
                  "name": "certifiedFileAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "2015:28:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1553,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2015:7:7",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1972:77:7"
            },
            "returnParameters": {
              "id": 1558,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2072:0:7"
            },
            "scope": 1612,
            "src": "1957:603:7",
            "stateMutability": "nonpayable",
            "superFunction": 6926,
            "visibility": "public"
          }
        ],
        "scope": 1613,
        "src": "196:2366:7"
      }
    ],
    "src": "0:2563:7"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.3",
  "updatedAt": "2020-01-15T10:55:50.243Z"
}